私は PHP のバックグラウンドから話していますが、これは他の Web サーバー言語にも当てはまると思います。stdout
名前のとおり、すべての標準出力が出力される場所ではありませんか? また、HTTP レスポンスの送信先ではないでしょうか。何か不足していますか?
2 に答える
0
Evert の回答を読んだ後、長い間保持されていたいくつかの仮定をクリアしたと思うので、実験を行いました。
<?php
echo "Echo output\n";
fwrite(STDOUT, "stdout output\n");
?>
Post-closing tag output
これをコマンド ラインで実行すると、次のようになります。
Echo output
stdout output
Post-closing tag output
しかし、ブラウザでこのファイルを表示すると、次のようになります。
Echo output
Post-closing tag output
つまり、PHP が実行されるコンテキストに応じて、その出力はさまざまな場所に送信されます。Web サーバーを介して提供されecho
、PHP タグの外側にあるものはすべて HTTP 応答に送られます (少なくとも Apache2/PHP5 では)。この HTTP 応答は とは異なりstdout
ます。CLI 経由で実行した場合は、echo
に進みますstdout
。
この質問も関連している可能性があります: PHP stdout on Apache
于 2017-08-24T16:01:26.387 に答える