echo
是否等于fputs( STDOUT )
,或echo
是否写入其他流?我已经使用PHP一段时间了,但我不太清楚在较低级别实际发生了什么。
答案 0 :(得分:41)
根据PHP's manual page on wrappers,答案是否定。
PHP://输出
php:// output是一个只写的流,允许你写入 输出缓冲机制的方式与print()和echo()相同。
print
和echo
写入php://output
流,而fputs(STDOUT)
则写入php://stdout
。
我做了一点测试:
<?php
$output = fopen('php://output', 'w');
ob_start();
echo "regular echo\n";
fwrite(STDOUT, "writing to stdout directly\n");
fwrite($output, "writing to php://output directly\n");
$ob_contents = ob_get_clean();
print "ob_contents: $ob_contents\n";
此脚本输出(在PHP 5.2.13,windows上测试):
writing to stdout directly
ob_contents: regular echo
writing to php://output directly
即。写入STDOUT
直接绕过ob处理程序。