我正在运行一个从txt文件读取流的项目,因此在CLI中,我写道:
cat texte.txt|php index.php
Run Code Online (Sandbox Code Playgroud)
在我的index.php
文件中,我读了流:
$handle = fopen ("php://stdin","r");
Run Code Online (Sandbox Code Playgroud)
现在我有一个$result
包含我的处理文件的结果,我想输出它STDOUT
,我看了手册,但我不知道如何使用它,你能不能请我使用一个例子.
mar*_*rio 55
好的,让我再举一个例子来说明STDIN
和STDOUT
使用方法.
在PHP中,您使用这两个习语:
$input = fgets(STDIN);
fwrite(STDOUT, $output);
Run Code Online (Sandbox Code Playgroud)
从命令行开始,您可以使用它们:
cat "input.txt" | php script.php > "output.txt"
php script.php < input.txt > output.txt
echo "input..." | php script.php | sort | tee output.txt
Run Code Online (Sandbox Code Playgroud)
这就是所有这些事情.管道输入或管道输送.并且输入的部分将出现STDIN
,而您的输出应该出现STDOUT
.人们永远不要穿过小溪!
Gor*_*don 21
常量STDIN
和STDOUT
已经是资源,所以你需要做的就是
fwrite(STDOUT, 'foo');
Run Code Online (Sandbox Code Playgroud)
见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,而不是使用这些包装器手动打开流.
小智 18
这对你有用
$out = fopen('php://output', 'w'); //output handler
fputs($out, "your output string.\n"); //writing output operation
fclose($out); //closing handler
Run Code Online (Sandbox Code Playgroud)