如何在 PHP 中使用 STDOUT

发布于 2024-12-25 17:57:34 字数 314 浏览 0 评论 0 原文

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

cat texte.txt|php index.php

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

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

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

I am running into a project that read a stream from a txt file, so in the CLI, i write:

cat texte.txt|php index.php

In my index.php file i read the stream:

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

Now i have a $result that contains the result of my processing file and i want to output it with STDOUT, I looked in the manual, but I don't know how to use it, can you please make me a use example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

久光 2025-01-01 17:57:34

好的,让我再给您举一个 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 中。千万不要过河,伙计们!

Okay, let me give you another example for the STDIN and STDOUT usage.

In PHP you use these two idioms:

 $input = fgets(STDIN);

 fwrite(STDOUT, $output);

When from the commandline you utilize them as such:

 cat "input.txt"  |  php script.php   >  "output.txt"

 php script.php  < input.txt  > output.txt

 echo "input..."  |  php script.php   |  sort  |  tee  output.txt

That's all these things do. Piping in, or piping out. And the incoming parts will appear in STDIN, whereas your output should go to STDOUT. Never cross the streams, folks!

心奴独伤 2025-01-01 17:57:34

常量 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,而不是使用这些包装器手动打开流。

The constants STDIN and STDOUT are already resources, so all you need to do is

fwrite(STDOUT, 'foo');

See http://php.net/manual/en/wrappers.php

php://stdin, php://stdout and php://stderr allow direct access to the corresponding input or output stream of the PHP process. The stream references a duplicate file descriptor, so if you open php://stdin and later close it, you close only your copy of the descriptor-the actual stream referenced by STDIN is unaffected. Note that PHP exhibited buggy behavior in this regard until PHP 5.2.1. It is recommended that you simply use the constants STDIN, STDOUT and STDERR instead of manually opening streams using these wrappers.

菊凝晚露 2025-01-01 17:57:34

这应该对你有用

$out = fopen('php://output', 'w'); //output handler
fputs($out, "your output string.\n"); //writing output operation
fclose($out); //closing handler

this should work for you

$out = fopen('php://output', 'w'); //output handler
fputs($out, "your output string.\n"); //writing output operation
fclose($out); //closing handler
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文