我正在编写一个运行在Apache服务器上的PHP脚本(不是由我管理的)。在函数中,变量$outfile作为函数参数,函数的开头是:
if (isset($outfile))
$fh = fopen($outfile, 'wb');
else
$fh = fopen('php://stdout', 'w');
echo 'Hello, ';
fwrite($fh, 'World');我用$outfile = NULL调用这个函数,所以$fh应该指向stdout。我可以更多地去掉这个条件:
$fh = fopen('php://stdout', 'w');
echo 'Hello, ';
fwrite($fh, 'world');关键是,它只输出
Hello,而不是我所期望的:
Hello, world!我怎么能回避这个问题呢?
发布于 2016-11-23 21:21:12
使用php://output而不是php://stdout。正如文档所说
php://output是一个只写的流,它允许您以与echo相同的方式写入输出缓冲区机制。
php://stdout直接写入stdout文件描述符,因此它不会与echo的缓冲输出正确同步。
https://stackoverflow.com/questions/40774292
复制相似问题