PHP 输入和输出处理

示例

从CLI运行时,预定义了常量STDINSTDOUTSTDERR。这些常量是文件句柄,可以视为等同于运行以下命令的结果:

STDIN = fopen("php://stdin", "r");
STDOUT = fopen("php://stdout", "w");
STDERR = fopen("php://stderr", "w");

这些常量可以在任何标准文件句柄的地方使用:

#!/usr/bin/php

while ($line = fgets(STDIN)) {
    $line = strtolower(trim($line));
    switch ($line) {
        case "bad":
            fprintf(STDERR, "%s is bad" . PHP_EOL, $line);
            break;
        case "quit":
            exit;
        default:
            fprintf(STDOUT, "%s is good" . PHP_EOL, $line);
            break;
    }
}

在大多数情况下,可以使用先前引用的内置流地址(php://stdin,php://stdout和php://stderr)代替文件名:

file_put_contents('php://stdout', 'This is stdout content');
file_put_contents('php://stderr', 'This is stderr content');

// 打开句柄并多次写入。
$stdout = fopen('php://stdout', 'w');

fwrite($stdout, 'Hello world from stdout' . PHP_EOL);
fwrite($stdout, 'Hello again');

fclose($stdout);

或者,您也可以使用readline()输入,也可以将echoprint或任何其他字符串打印功能用于输出。

$name = readline("请输入你的名字:");
print "Hello, {$name}.";