26
echo
はfputs(STDOUT)
に等しいか、echo
は別のストリームに書き込みますか?私はPHPをしばらく使用しましたが、実際には下位レベルで何が起こっているのかよくわかりません。echo equal fputs(STDout)ですか?
echo
はfputs(STDOUT)
に等しいか、echo
は別のストリームに書き込みますか?私はPHPをしばらく使用しましたが、実際には下位レベルで何が起こっているのかよくわかりません。echo equal fputs(STDout)ですか?
PHP's manual page on wrappersによると、答えはいいえ
PHPです://出力
は、PHP://出力はあなたが の出力バッファへの書き込みを可能にする書き込み専用のストリームでありますprint()とecho()と同じ方法で呼び出されます。
fputs(STDOUT)
一方
print
とphp://output
ストリームへecho
の書き込みは、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
すなわち直接OBのハンドラをバイパスSTDOUT
への書き込み
STDOUTの出力が格納される通常のデフォルトの場所はどこですか?例えば。 STDERRは 'C:\ xampp \ apache \ logs \ error.log'に書き込みますが、STDOUTは"見つからない "ようです。 – Pacerier