输入输出流

CLI SAPI 为 I/O 流定义了一些常量,以使命令行变量编程更容易一些。

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 自动关闭。

注意:

如果从 stdin 中读取 PHP 脚本,则这些常量不可用。