简介

流是概括文件、网络、数据压缩和其它操作的方式,共享一组通用的函数和用途。在其的简单定义中,stream 是表现可流动行为的 resource 对象。也就是说,它可以以线性的方式读写,并且可以 fseek() 到流中的任意位置。

wrapper 是附加代码,用于告诉流如何处理指定协议/编码。例如,http 封装协议知道如何将 URL 转换为 HTTP/1.0 请求远程服务器上的文件。默认情况下,PHP 内置了很多封装协议(参阅 支持的协议和封装协议),另外也可以直接从 PHP 脚本中使用 stream_wrapper_register() 或者直接从扩展中添加自定义封装协议。 因为任何种类的封装协议都可以添加到 PHP 中,所以对它们可以做什么并没有限制。使用 stream_get_wrappers() 访问当前已注册封装协议列表。

流作为 scheme://target 引用

  • scheme(string)——要使用的封装协议名称。示例为 file、http、https、ftp、ftps、compress.zlib、compress.bz2 和 php。PHP 内置封装协议列表,参阅支持的协议和封装协议。如果没有指定封装协议,函数使用默认值(通常是 file://)。
  • target——取决于要使用的封装协议。对于文件系统相关的流,这通常是所需文件的路径和文件名。对网络相关的流,这通常是主机名,通常跟着路径。再有,请参阅支持的协议和封装协议 获取对流内置目标的描述。