Я пытаюсь запустить процессы с использованием функции proc_open(). Как указано на странице - я предоставил переменные настраиваемой среды и попытался распечатать. Он показывает все мои переменные + всегда 3 переменные: «SHLVL», «PWD», «_ =». Я хотел бы печатать/использовать только мои переменные среды среды. Эти 3 всегда присутствуют с этой функцией? Есть ли способ иметь только предоставленные переменные? Все это под Linux и PHP5.PHP переменные среды proc_open
//Here is the code to clarify :
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);
$env = array('MY_VAR' => 'FOO');
$process = proc_open('./run.php', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
fwrite($pipes[0], escapeshellcmd($args));
fclose($pipes[0]);
$output = "";
while (!feof($pipes[1])) {
$output .= fgets($pipes[1]);
}
print "Output is $output \n";
fclose($pipes[1]);
$return_value = proc_close($process);
}
Спасибо.
Я не понимаю, почему у вас есть *, чтобы открыть оболочку, но если вы делаете *, то вокруг нее нет никакого способа. –
Это ... не ... вызывает оболочку в любом месте ... –
И? Он все равно не вызывает оболочку в любом месте. –