Модуль CLI SAPI определяет несколько констант для потоков
ввода/вывода для упрощения работы с командной строкой.
Константы, специфичные для модуля CLI
Константа
Описание
STDIN
Уже открытый поток ввода (stdin).
Он предотвращает необходимость его открывать следующим способом:
<?php $stdin = fopen('php://stdin', 'r'); ?>
Если вы хотите прочесть одну строку из stdin,
можно использовать следующий код:
<?php $line = trim(fgets(STDIN)); // читает одну строку из STDIN fscanf(STDIN, "%d\n", $number); // читает число из STDIN ?>
STDOUT
Уже открытый поток вывода (stdout).
Он предотвращает необходимость его открывать следующим способом:
<?php $stdout = fopen('php://stdout', 'w'); ?>
STDERR
Уже открытый поток ошибок (stderr).
Он предотвращает необходимость его открывать следующим способом:
<?php $stderr = fopen('php://stderr', 'w'); ?>
Учитывая вышесказанное, нет необходимости самому открывать поток,
например, stderr, а можно просто
использовать уже определенную константу ресурса потока:
php -r 'fwrite(STDERR, "stderr\n");'
Вам также не нужно их вручную закрывать, они будут закрыты PHP
автоматически при окончании вашего скрипта.
Замечание:
Эти константы недоступны, если PHP считывает запускаемый скрипт
из stdin.