Подтвердить что ты не робот

Делает эхо равным fputs (STDout)?

Соответствует ли echo fputs( STDOUT ) или echo записать в другой поток? Некоторое время я использовал PHP, но я не очень хорошо знаю, что на самом деле происходит на более низком уровне.

4b9b3361

Ответ 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 обработчики.