如何在 php 中使用 STDOUT

2022-08-30 10:05:02

我遇到了一个从txt文件读取流的项目,所以在CLI中,我写道:

cat texte.txt|php index.php

在我的文件中,我读取流:index.php

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

现在我有一个包含我的处理文件的结果,我想用它来输出它,我在手册中看了一下,但我不知道如何使用它,你能不能给我做一个使用的例子。$resultSTDOUT


答案 1

好吧,让我再举一个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

这就是所有这些事情所做的。管道进入或管道出口。传入的部分将显示在 中,而您的输出应转到 。永远不要越过溪流,伙计们!STDINSTDOUT


答案 2

常量和已经是资源,所以你需要做的就是STDINSTDOUT

fwrite(STDOUT, 'foo');

查看 http://php.net/manual/en/wrappers.php

php://stdin、php://stdout 和 php://stderr 允许直接访问 PHP 进程的相应输入或输出流。该流引用了重复的文件描述符,因此,如果打开 php://stdin,稍后将其关闭,则仅关闭描述符的副本 - STDIN 引用的实际流不受影响。请注意,PHP 在这方面表现出错误的行为,直到 PHP 5.2.1。建议您只使用常量 STDIN、STDOUT 和 STDERR,而不是使用这些包装器手动打开流。


推荐