我有以下代码从Python
运行PHP
脚本,并将输入值传递给stdin
。 (source)
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w")
);
$process = proc_open('python script.py', $descriptorspec, $pipes, null, null);
if (is_resource($process)) {
fwrite($pipes[0], "first input"); // input 1
fwrite($pipes[0], "second input"); // input 2
fclose($pipes[0]); // has to be closed before reading output!
fgets($pipes[1]);
$output = "";
while (!feof($pipes[1])) {
$output .= fgets($pipes[1]) . "</br>";
}
fclose($pipes[1]);
proc_close($process);
echo $output;
}
问题:$output
在命令行上捕获除stdout
第一行以外的所有内容。例如,如果Python
程序打印Hello
,from
,Python
是连续的行,$output
只包含from
和{{1} }。我如何捕获Python
的第一行?