Как я могу прочитать содержимое стандартного ввода (вплоть до EOF) в строку в PHP? - PullRequest
34 голосов
/ 05 мая 2009

Как я могу прочитать содержимое стандартного ввода (вплоть до EOF) в строку в PHP?

Ответы [ 3 ]

61 голосов
/ 05 мая 2009

в конечном итоге сам понял:

$input_data = file_get_contents("php://stdin");
6 голосов
/ 05 мая 2009

Используйте некоторые функции чтения файлов (например, fgets(), fgetc(), fscanf()) и передайте STDIN в качестве пути к файлу (или php://stdin, в зависимости от того, насколько новой является ваша версия PHP) .

Вы можете проверить EOF, используя feof().

Дополнительную информацию смотрите в справочнике по программированию из командной строки в PHP на PHP.net.

4 голосов
/ 24 мая 2017

Вот альтернатива: вы можете использовать stream_get_contents, чтобы получить все из открытого потока (AKA дескриптор файла). STDIN - это уже открытый дескриптор, эквивалентный тому, что вы получите, если позвоните fopen('php://stdin') (см. Ссылку: Потоки ввода / вывода

Итак: вы можете использовать

$input_data = stream_get_contents(STDIN);

, что эквивалентно принятому ответу .

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