PHP 入出力ストリーム

php://stdinphp://stdout および php://stderr は、PHP プロセスの 対応する入出力ストリームへのアクセスを許可します。 これらのストリームは複製されたファイル記述子を参照します。そのため、 php://stdin をオープンしたあとでそれを閉じたとしても、 識別子のコピーが閉じられるだけです。STDIN で参照される実際のストリームは何も影響を受けません。 PHP 5.2.1 より前のバージョンでは、これに関連する挙動にバグがあります。 これらのラッパーを使うのではなく、定数 STDIN, STDOUT および STDERR を使用することを推奨します。

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' の一部として保持します。

php://memory ラッパーは、データをメモリに保存します。 php://temp も同様ですが、メモリの制限 (デフォルトは 2 MB です) を超過した際にはテンポラリファイルを使用します。

php://temp ラッパーは、次の 'parameters' を 'path' の一部として受け付けます。

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

属性サポートの有無
allow_url_fopen で制約されるNo
読み込み許可 php://stdinphp://inputphp://memory および php://temp のみ。
書き込み許可 php://stdoutphp://stderrphp://outputphp://memory および php://temp のみ。
追加許可 php://stdoutphp://stderrphp://outputphp://memory および php://temp のみ (書き込みと同じ)。
同時読み書き許可 php://memory および php://temp のみ。
stat() のサポート php://memory および php://temp のみ。
unlink() のサポートNo
rename() のサポートNo
mkdir() のサポートNo
rmdir() のサポートNo