Не получить полный ответ от popen

Привет, я запускаю процесс с popen;

$handle = popen('python scriptos.py', "r"); while (!feof($handle)) { $data = fgets($handle); echo "> ".$data; } 

И я получаю только 3 строки из процесса, который возвращает 5 строк. Я запустил эту точную команду в CLi, и я получу больше ответа. Это похоже на то, что он перестает читать на ранней стадии (может потребоваться время для завершения и обновления следующих 2 строк во время работы, это индикатор прогресса).

Я что-то делаю неправильно? Является ли proc_open более подходящим (я начал видеть, могу ли я попробовать это).

Две отсутствующие строки, вероятно, записываются в STDERR , а popen() возвращает указатель на STDOUT.

Вы можете получить указатель на STDERR с помощью proc_open() или изменить строку popen() на

 $handle = popen('python scriptos.py 2>&1', "r"); 

для перенаправления STDERR на STDOUT, поэтому они включены в ваш выход.