Соответствует ли echo
fputs( STDOUT )
или echo
записать в другой поток? Некоторое время я использовал PHP, но я не очень хорошо знаю, что на самом деле происходит на более низком уровне.
Делает эхо равным fputs (STDout)?
Ответ 1
В соответствии с справочной страницей PHP на обертках, ответ No.
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";
Этот вывод script (проверен на PHP 5.2.13, windows):
writing to stdout directly
ob_contents: regular echo
writing to php://output directly
то есть. запись в STDOUT
напрямую обходит ob обработчики.