ホームページ  >  記事  >  バックエンド開発  >  phpのSTDOUT、php://stdout、CGI上のphp://outputの違い

phpのSTDOUT、php://stdout、CGI上のphp://outputの違い

WBOY
WBOYオリジナル
2016-06-13 12:47:261022ブラウズ

phpのSTDOUT、php://stdout、CGI上のphp://outputの違いは何ですか?
皆さん、こんにちは:
私は PHP を学ぶのが初めてですが、現在のサーバー システムは Linux であり、Apache の CGI がその上で実行されてユーザー リクエストを実行しています。
php でテスト ファイル test.php を作成するとします。このファイルには fwrite(STDOUT, "this is a test"); という 1 つの文だけが含まれています。 このテスト プログラムは IE ブラウザのアドレス バーから実行しましたが、正常な出力は得られませんでしたが、サーバー側の Linux シェル
で直接実行しました。 このtest.phpで出力が確認できます。
test.php を次のように変更しました: $out=fopen("php://stdout", 'w'); fwrite($out, "this is a test");
状況は依然として同じですが、IE ブラウザではコンテンツを正常に参照できませんが、出力はシェルで正常に表示されます。

test.php を次のように変更しました: $out=fopen("php://output",'w'); fwrite($out, "this is a test");
今回はIEブラウザ上でも正常な出力が見られ、シェル上でも正常な出力が見られます。

test.php を次のように変更しようとしました。 echo("this is a test"); 今度はIEは正常、シェルも正常です。

私の質問は、STDOUT、php://stdout、php://output の違いは何ですか? なぜ php://output
以外なのかということです。 それ以外の場合、Apache はプログラムの標準出力を正しい CGI にリダイレクトできませんでした。

共有先:
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。