Php 回波是否等于FPUT(标准输出)?

Php 回波是否等于FPUT(标准输出)?,php,stream,stdout,Php,Stream,Stdout,echo是否等于fputs(STDOUT),或者echo是否写入不同的流?我使用PHP已经有一段时间了,但我不太清楚在较低的级别上实际发生了什么。根据,答案是否定的 php://output php://output 是一个只写流,允许您向 输出缓冲机制与print()和echo()的方式相同 print和echo写入php://output流,而fputs(STDOUT)写入php://stdout 我做了一个小测试: <?php $output = fopen('php://outp

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

根据,答案是否定的

php://output

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";

i、 e.写入标准输出时直接绕过ob处理程序。

标准输出的默认存储位置通常在哪里?例如,STDERR写入
C:\xampp\apache\logs\error.log
但STDOUT似乎“丢失”。STDOUT将存储在/path/subdirectory/file-store.txt中,或者使用echo或print
writing to stdout directly
ob_contents: regular echo
writing to php://output directly