PHP эхо readline на стандартный ввод - PullRequest
0 голосов
/ 26 марта 2012

Я использую readline в PHP для чтения из stdin, но когда я запускаю файл, PHP возвращает мне все вводимые данные. Я использую это как:

<file php file | otherprogram

Когда я запускаю это на своем сервере, он работает так, как я ожидал, но когда я запускаю его на своем ноутбуке (PHP 5.3.10 с Suhosin-Patch (cli)), он выводит stdin в stdout вместе с фактическим выводом сценария. Это довольно раздражает, так как я передаю вывод на otherprogram.

Я пытался перехватить вывод с помощью буферизации вывода, но это не сработало.

Кто-нибудь знает, что может быть причиной этого?

1 Ответ

1 голос
/ 03 июля 2012

Я знаю, что этот вопрос немного устарел, но у меня та же проблема.Я полагаю, что это вызвано одной из двух причин: функция readline () в php эхом возвращает входные данные, которые она получает (по одному символу за раз), и поэтому она в конечном итоге «выводится» перед намеченным выводом.Если это не так, оболочка bash повторяет ввод при его вводе.

Я несколько склонен полагать, что это последний случай, потому что я не смог отловить вывод на конце PHP, используя свои функции буферизации вывода (ob_start и ob_end_clean).

...