echo 是否等于 fputs( STDout )?

2022-08-30 14:18:21

是否等于 或写入不同的流?我已经使用PHP一段时间了,但我不太清楚在较低级别上实际发生了什么。echofputs( STDOUT )echo


答案 1

根据PHP关于包装器的手册页,答案是否定的。

php://output

php://output 是一个只写流,允许您以与print()和echo()相同的方式写入输出缓冲区机制。

print并写入流,而写入 .echophp://outputfputs(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 窗口上测试):

writing to stdout directly
ob_contents: regular echo
writing to php://output directly

即,直接写入绕过 ob 处理程序。STDOUT


答案 2

推荐