我正在运行一个从txt文件中读取流的项目,因此在CLI中,我写道:
cat texte.txt|php index.php
在我的index.php
文件中,我读了一下流:
$handle = fopen ("php://stdin","r");
现在我有一个$result
包含我的处理文件的结果,我想用STDOUT
输出它,我查看了手册,但我不知道如何使用它,你能不能请我举个例子。
答案 0 :(得分:50)
在PHP中,你使用这两个习语:
$input = fgets(STDIN);
fwrite(STDOUT, $output);
当您从命令行中使用它们时:
cat "input.txt" | php script.php > "output.txt"
php script.php < input.txt > output.txt
echo "input..." | php script.php | sort | tee output.txt
这就是所有这些事情。管道输入或管道输送。传入的部分将显示在STDIN
中,而您的输出应显示在STDOUT
。永远不要穿过小溪,伙计们!
答案 1 :(得分:18)
常量STDIN
和STDOUT
已经是资源,所以您需要做的只是
fwrite(STDOUT, 'foo');
请参阅http://php.net/manual/en/wrappers.php
php:// stdin,php:// stdout和php:// stderr允许直接访问PHP进程的相应输入或输出流。流引用了重复的文件描述符,因此如果打开php:// stdin并稍后关闭它,则只关闭描述符的副本 - STDIN引用的实际流不受影响。请注意,在PHP 5.2.1之前,PHP在这方面表现出错误的行为。建议您只使用常量STDIN,STDOUT和STDERR,而不是使用这些包装器手动打开流。
答案 2 :(得分:15)
这应该对你有用
$out = fopen('php://output', 'w'); //output handler
fputs($out, "your output string.\n"); //writing output operation
fclose($out); //closing handler