如何在php中使用STDOUT

时间:2012-01-08 22:25:13

标签: php command-line

我正在运行一个从txt文件中读取流的项目,因此在CLI中,我写道:

cat texte.txt|php index.php

在我的index.php文件中,我读了一下流:

$handle = fopen ("php://stdin","r");

现在我有一个$result包含我的处理文件的结果,我想用STDOUT输出它,我查看了手册,但我不知道如何使用它,你能不能请我举个例子。

3 个答案:

答案 0 :(得分:50)

好的,让我再举一个STDINSTDOUT用法示例。

在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)

常量STDINSTDOUT已经是资源,所以您需要做的只是

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