PHP://Wrapper 是PHP自己的I/O流访问的封装。
- php://stdin:访问PHP进程相应的输入流,比如用在获取cli执行脚本时的键盘输入。
- php://stdout:访问PHP进程相应的输出流。
- php://stderr:访问PHP进程相应的错误输出。
- php://input:访问请求的原始数据的只读流。
- php://output:只写的数据流,以 print 和 echo 一样的方式写入到输出区。
- php://fd:允许直接访问指定的文件描述符。例 php://fd/3 引用了文件描述符 3。
- php://memory:允许读写临时数据。 把数据储存在内存中。
- php://temp:同上,会在内存量达到预定义的限制后(默认是 2MB)存入临时文件中。
- php://filter:过滤器。
php://stdin 是只读的, php://stdout 和 php://stderr 是只写的。
列举几个例子加深理解吧:
1. php://input
11 | Hello World&foo=bar&name=John |
2. 使用过滤器
04 | file_put_contents ( "php://filter/write=string.rot13/resource=file:///path/to/somefile.txt" , "Hello World" ); |
07 | $h = fopen ( 'test.txt' , 'r' ); |
08 | stream_filter_append( $h , 'string.rot13' ); |
3. 设置上下文(Stream Contexts)
04 | 'header' => "Auth: SecretAuthTokenrn" . |
05 | "Content-type: application/x-www-form-urlencodedrn" . |
06 | "Content-length: " . strlen ( "Hello World" ), |
07 | 'content' => 'Hello World' |
10 | $default = stream_context_get_default( $opts ); |
18 | [Auth] => SecretAuthToken |
19 | [Content-type] => application/x-www-form-urlencoded |
20 | [Content-length] => 11 |
21 | ) 原文:http://www.nowamagic.net/academy/detail/12220509 |