Потоки ввода/вывода


Модуль 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.