Input/output streams

O CLI SAPI define algumas constantes para I/O streams com o objetivo de tornar a programação em linha de comando um pouco mais fácil.

Constantes específicas da CLI
Constante Descrição
STDIN

Um stream já aberto para o stdin. Isso evita ter que abrí-lo com

<?php
$stdin = fopen('php://stdin', 'r');
?>
Se voê desejar ler uma única linha do stdin, você pode usar
<?php
$line = trim(fgets(STDIN)); // Lê uma linha do STDIN
fscanf(STDIN, "%d\n", $number); // Lê um número do STDIN
?>
STDOUT

Um stream já aberto para o stdout. Isso evitar ter que abrí-lo com

<?php
$stdout = fopen('php://stdout', 'w');
?>
STDERR

Um stream já aberto com stderr. Isso evita ter que abri-lo com

<?php
$stderr = fopen('php://stderr', 'w');
?>

Como dito acima, você não precisa por exemplo abrir um stream para stderr por si mesmo, basta usar a constante ao invés do recurso do stream:

php -r 'fwrite(STDERR, "stderr\n");'
Você não precisa fechar explicitamente esses streams, já que eles serão automaticamente fechados pelo PHP quando o script terminar.

Note:

Essas constantes não estão disponíveis se estiver lendo os scripts PHP de stdin.