PHP マニュアル
前のページ | 付録 J. サポートされるプロトコル/ラッパー | 次のページ

# PHP 入出力 ストリーム

PHP 3.0.13以降、`php://output` 、そして、 PHP 4.3以降、`php://input`

- `php://stdin`

- `php://stdout`

- `php://stderr`

- `php://output`

- `php://input`

`php://stdin`、 `php://stdout` と`php://stderr` により、対応するPHPプロセスの 入力または出力ストリームにアクセスできるようになります。

`php://output` により、 print() およびecho()と同様の 手法により、出力バッファに書き込むことができるようになります。

`php://input` により、raw POSTデータを読み込む ことができるようになります。これは、 `$HTTP_RAW_POST_DATA`よりメモリ消費量が少なく、 代わりとなるものです。また、特別な`php.ini`ディレクティブを全く必 要としません。

`php://stdin` および `php://input` は読み込みのみ可です。一方、 `php://stdout`, `php://stderr` および `php://output` は、書き込みのみ可です。

`php://filter` is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of opening. This is useful with all-in-one file functions such as readfile(), file(), and file_get_contents() where there is otherwise no opporotunity to apply a filter to the stream prior the contents being read.

The `php://filter` target takes the following 'parameters' as parts of its 'path'.

- `/resource=<stream to be filtered>` (required) This parameter must be located at the end of your `php://filter` specification and should point to the stream which you want filtered.

  `<?php /* This is equivalent to simply: readfile("http://www.example.com"); since no filters are actually specified */ readfile("php://filter/resource=http://www.example.com"); ?>`

- `/read=<filter list to apply to read chain>` (optional) This parameter takes one or more filternames separated by the pipe character `|`.

  `<?php /* This will output the contents of www.example.com entirely in uppercase */ readfile("php://filter/read=string.toupper/resource=http://www.example.com"); /* This will do the same as above but will also ROT13 encode it */ readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com"); ?>`

- `/write=<filter list to apply to write chain>` (optional) This parameter takes one or more filternames separated by the pipe character `|`.

  `<?php /* This will filter the string "Hello World" through the rot13 filter, then write to example.txt in the current directory */ file_set_contents("php://filter/write=string.rot13/resource=example.txt","Hello World"); ?>`

- `/<filter list to apply to both chains>` (optional) Any filter lists which are not prefixed specifically by `read=` or `write=` will be applied to both the read and write chains (as appropriate).

表 J-5. Wrapper Summary (For `php://filter`, refer to summary of wrapper being filtered.)

Attribute | Supported
--- | ---
Restricted by `allow_url_fopen`. | No
Allows Reading | `php://stdin` and `php://input` only.
Allows Writing | `php://stdout`, `php://stderr`, and `php://output` only.
Allows Appending | `php://stdout`, `php://stderr`, and `php://output` only. (Equivalent to writing)
Allows Simultaneous Reading and Writing | No. These wrappers are unidirectional.
Supports stat() | No
Supports unlink() | No

前のページ | ホーム | 次のページ
FTPとFTPS | 上に戻る | 圧縮ストリーム