Запустите процесс в режиме реального времени - PullRequest
1 голос
/ 06 декабря 2010

Я пытаюсь понять, как отображать вывод (и читать ввод) в режиме реального времени в процессе, запущенном PHP в командной строке.Кажется, есть много альтернатив: shell(), exec(), system(), popen(), proc_open()

, и мне не совсем ясно, в чем различия.Все, что мне нужно, - это выполнить процесс, отобразить его вывод на том же терминале, где вызывается PHP-скрипт, возможно, прочитать входные данные и, наконец, вернуться к потоку PHP-скриптов при выходе из процесса.Среди опций, которые я перечислил, proc_open(), вероятно, может сделать это, но это кажется излишним, так как все, что я хочу сделать, - это передать управление внешнему процессу и дождаться его завершения.

Есть некоторыевопросы, которые кажутся связанными, но, насколько я понимаю, они на самом деле касаются отправки процесса в фоновом режиме (что мне не нужно) или отображения вывода в браузере (что не в моем случае, все в терминале).

Ответы [ 2 ]

2 голосов
/ 06 декабря 2010

Используйте pcntl_fork() и pcntl_exec() как это

0 голосов
/ 06 декабря 2010

Возможно этот результат в Google Code Search может помочь. Насколько я могу судить, он делает нечто очень похожее на то, что вы ищете, в том числе захватывает вывод из STDOUT и (потенциально) выдает ввод через STDIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...