PHPマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

PHP 入出力ストリーム | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

PHP 入出力ストリーム

PHP 3.0.13 以降で、php://output。 および PHP 4.3.0 以降で php://input、 PHP 5.0.0 以降で php://filter

  • php://stdin

  • php://stdout

  • php://stderr

  • php://output

  • php://input

  • php://filter

php://stdinphp://stdout および php://stderr は、PHP プロセスの 対応する入出力ストリームへのアクセスを許可します。

php://output は、 print() および echo() と同じ方法での出力バッファへの書き込みを許可します。

php://input は、POST の生データの読み込みを 許可します。これは $HTTP_RAW_POST_DATA に比べて メモリ消費量が少なく、特別な php.ini ディレクティブを設定する 必要がありません。php://input は、 enctype="multipart/form-data" に対しては 使用できません。

php://stdin および php://input は読み込み専用で、 php://stdoutphp://stderr および php://output は書き込み専用です。

php://filter は、フィルタアプリケーションが ストリームをオープンすることを許可するために設計されたメタラッパーです。 これは、readfile()file() および file_get_contents() のようなオールインワンの ファイル関数とともに使用すると有用です。これらの関数には、コンテンツが 読み込まれる前にストリームにフィルタを適用する手段がありません。

php://filter の対象は、以下のように 'parameters' を 'path' の一部として保持します。

  • /resource=<フィルタの対象となるストリーム>必須)このパラメータは、 php://filter 指定の最後に存在し、フィルタリング したいストリームを指している必要があります。

    <?php
    /* これは単純に以下と同じです。
       readfile("http://www.example.com");
       なぜなら、実際のところ何のフィルタ処理も行われないからです。 */

    readfile("php://filter/resource=http://www.example.com");
    ?>

  • /read=<読み込みチェーンに適用するフィルタのリスト>任意)このパラメータは 1 つ以上のフィルタ名を パラメータとしてとり、それらはパイプ文字 | で区切られます。

    <?php
    /* これは、www.example.com のすべての内容を
       大文字に変換して出力します。 */
    readfile("php://filter/read=string.toupper/resource=http://www.example.com");

    /* これは上の例と同じですが、それに加えて
       ROT13 エンコード処理を行います。 */
    readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
    ?>

  • /write=<書き込みチェーンに適用するフィルタのリスト>任意)このパラメータは 1 つ以上のフィルタ名を パラメータとしてとり、それらはパイプ文字 | で区切られます。

    <?php
    /* これは、文字列 "Hello World"
       に対して rot13 フィルタを適用し、カレントディレクトリの
       example.txt に書き込みます。 */
    file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
    ?>

  • /<両方のチェーンに適用するフィルタのリスト>任意read= あるいは write= の指定をされていないすべてのフィルタは、 読み込みチェーンと書き込みチェーンの両方に(適宜)適用されます。

表 M-6. ラッパーの概要(php://filter については、 フィルタされる側のラッパーの概要を参照します)

属性サポートの有無
allow_url_fopen で制約されるNo
読み込み許可 php://stdin および php://input のみ。
書き込み許可 php://stdoutphp://stderr および php://output のみ。
追加許可 php://stdoutphp://stderr および php://output のみ(書き込みと同じ)。
同時読み書き許可No. これらのラッパーは一方通行です。
stat() のサポートNo
unlink() のサポートNo
rename() のサポートNo
mkdir() のサポートNo
rmdir() のサポートNo


フォーラムで「PHP 入出力ストリーム」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | PHP 入出力ストリーム」をGoogle検索
copyright © 1997-2009 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: