在 php 命令行应用程序中,只是回显或 printf 等一些字符串与获取 sdtout 流并写入它有什么区别,即
$stdout = fopen('php://stdout', 'w');
最佳答案
我首先想到的是输出缓冲。 echo
和 print
与输出缓冲机制交互,但直接写入 stdout 会绕过它。
考虑这个脚本:
<?php
$stdout = fopen('php://stdout', 'w');
ob_start();
echo "echo output\n";
fwrite($stdout, "FWRITTEN\n");
echo "Also echo\n";
$out = ob_get_clean();
echo $out;
输出:
FWRITTEN
echo output
Also echo
这表明 echo
被缓冲,而 fwrite 没有。
关于PHP 获取输出流或只是回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124915/