Подтвердить что ты не робот

Как использовать STDOUT в php

Я запускаю проект, который читает поток из txt файла, поэтому в CLI я пишу:

cat texte.txt|php index.php

В моем файле index.php я прочитал поток:

$handle = fopen ("php://stdin","r");

Теперь у меня есть $result, который содержит результат моего файла обработки, и я хочу вывести его с помощью STDOUT, я посмотрел в руководстве, но я не знаю, как его использовать, можете ли вы сделать я использую пример.

4b9b3361

Ответ 1

Хорошо, позвольте мне привести еще один пример использования STDIN и STDOUT.

В PHP вы используете эти две идиомы:

 $input = fgets(STDIN);

 fwrite(STDOUT, $output);

Когда из командной строки вы используете их как таковые:

 cat "input.txt"  |  PHP скрипт.php   >  "output.txt"

 PHP скрипт.php  < input.txt  > output.txt

 echo "input..."  |  PHP скрипт.php   |  sort  |  tee  output.txt

Что все это происходит. Трубопровод или трубопровод. И входящие части появятся в STDIN, тогда как ваш выход должен перейти в STDOUT. Никогда не пересекайте потоки, люди!

Ответ 2

Константы STDIN и STDOUT уже являются ресурсами, поэтому все, что вам нужно сделать, это

fwrite(STDOUT, 'foo');

См. http://php.net/manual/en/wrappers.php

php://stdin, php://stdout и php://stderr разрешают прямой доступ к соответствующему входному или выходному потоку процесса PHP. Поток ссылается на дубликат дескриптора файла, поэтому, если вы открываете php://stdin и позже закрываете его, вы закрываете только свою копию дескриптора - фактический поток, на который ссылается STDIN, не изменяется. Обратите внимание, что PHP демонстрировал ошибочное поведение в этом отношении до PHP 5.2.1. Рекомендуется просто использовать константы STDIN, STDOUT и STDERR вместо ручного открытия потоков с использованием этих оберток.

Ответ 3

это должно работать для вас

$out = fopen('php://output', 'w'); //output handler
fputs($out, "your output string.\n"); //writing output operation
fclose($out); //closing handler