本篇文章主要介绍php中特殊的协议,php://协议详解 ,感兴趣的小伙伴了解一下。
php:// — 访问各个输入/输出流(I/O streams)
说明
PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。
php://stdin, php://stdout 和 php://stderr
、 和 允许直接访问 PHP 进程相应的输入或者输出流。 数据流引用了复制的文件描述符,所以如果你打开 并在之后关了它, 仅是关闭了复制品,真正被引用的 STDIN
并不受影响。 注意 PHP 在这方面的行为有很多 BUG 直到 PHP 5.2.1。 推荐你简单使用常量 STDIN
、 STDOUT
和 STDERR
来代替手工打开这些封装器。
是只读的, 和 是只写的。
php://input
是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 来代替 ,因为它不依赖于特定的 指令。 而且,这样的情况下 默认没有填充, 比激活~来1源gaodai#ma#com搞*代#码1网搞代gaodaima码 always_populate_raw_post_data 潜在需要更少的内存。 enctype="multipart/form-data" 的时候 是无效的。
Note: 打开的数据流只能读取一次; 数据流不支持 seek 操作。 不过,依赖于 SAPI 的实现,请求体数据被保存的时候, 它可以打开另一个 数据流并重新读取。 通常情况下,这种情况只是针对 POST 请求,而不是其他请求方式,比如 PUT 或者 PROPFIND。
php://output
是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。
php://fd
允许直接访问指定的文件描述符。 例如 引用了文件描述符 3。