python — PHP передает значения в командную строку: невозможно прочитать первую строку вывода

У меня есть следующий код для запуска Python сценарий от PHP и передать входные значения stdin, (источник)

$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 а также Python, Как мне захватить первую строку stdout тоже?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]