Как использовать STDOUT в php
Я запускаю проект, который читает поток из txt файла, поэтому в CLI я пишу:
cat texte.txt|php index.php
В моем файле index.php
я прочитал поток:
$handle = fopen ("php://stdin","r");
Теперь у меня есть $result
, который содержит результат моего файла обработки, и я хочу вывести его с помощью STDOUT
, я посмотрел в руководстве, но я не знаю, как его использовать, можете ли вы сделать я использую пример.
Ответы
Ответ 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