商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > PHP的php://

PHP的php://

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

PHP 里有一类特殊的协议,叫做 php://,专门用来访问各种输入输出流(I/O streams)。说白了,就是让你能直接跟标准输入、标准输出、临时数据甚至过滤器打交道,而不必真的去操作文件系统。这东西在命令行脚本、Web 请求处理或者流式数据加工时特别有用,值得好好捋一遍。

先看最基本的几个:

  • php://stdin — 标准输入流,说白了就是从终端或者管道里读数据,跟 CLI 模式下的 STDIN 一个意思。
  • php://stdout — 标准输出流,把数据写到命令行终端,等价于 STDOUT
  • php://stderr — 错误描述符,专门用来输出错误信息,不影响 stdout 的正常输出,调试时非常好用。

接下来是跟 HTTP 请求和响应相关的两个流:

  • php://input — 这是个只读流,能直接拿到原始 HTTP 请求的 body 数据。比如 POST 过来的 JSON 或 XML,用 file_get_contents('php://input') 就能原样读取,比 $_POST 更灵活。
  • php://output — 正好相反,这是个只写流,你往里面写什么,它就会直接发送到响应体中。某些场景下可以用来替代 echoprint,尤其是在需要流式输出大文件时。

还有两个比较底层的:

  • php://fd — 允许直接访问指定的文件描述符。比如 php://fd/3 就引用了文件描述符 3,这在多进程或 socket 编程中偶尔会用到。

临时数据存储方面,两个长相相似的兄弟:

  • php://memoryphp://temp — 这俩都是类似文件包装器的流,用来读写临时数据。唯一的区别在于:php://memory 始终把数据存在内存里,而 php://temp 会在数据量达到一定阈值后自动切换到磁盘文件中。简单说,小数据用 memory 快,大数据用 temp 更安全。

最后一个是 php://filter,这货设计出来就是为了在数据流打开时做筛选过滤的。比如你想对文件内容进行 base64 编码、压缩或者字符串转换,都可以用这个流包装器来搞定,非常灵活。

更详细的用法和参数,可以翻翻 PHP 官方手册:https://www.php.net/manual/zh/wrappers.php.php

本文转载于:https://blog.csdn.net/fujian9544/article/details/104757505 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注