如本MSDN页面所述
http://msdn.microsoft.com/en-us/library/system.io.stream.aspx
什么是PHP等价物?
是否有可能在备注
下执行该页面上列出的三件事情Streams涉及三个基本操作:
您可以从溪流中读取。阅读是从数据传输 流式传输到数据结构,例如字节数组。
您可以写入流。写入是从数据传输数据 结构成流。
- 醇>
Streams可以支持搜索。寻求是查询和修改 流中的当前位置。寻求能力取决于 一种流的支持存储。例如,网络流有 没有统一的当前位置概念,因此通常会这样做 不支持寻求。
答案 0 :(得分:4)
PHP streams怎么样?它们几乎完全支持您所寻找的内容。
答案 1 :(得分:2)
PHP没有通用类来处理这个问题,它有一个你可能不习惯使用的数据类型 - Resource。
资源可用于保存流的文件描述符。它们用于各种各样的地方,包括文件系统描述符,网络流,维护数据库连接甚至数据库结果集。它们还用于维护上下文信息,这种类型的资源不是一个流,但其行为更像数据存储。单独使用PHP定义自己的资源类型是不可能的,它们是底层C ++代码的一部分。
在许多方面,资源的行为类似于对象的实例,并且最好以这种方式考虑它们(尽管它们不能在像对象这样的进程之间被序列化或传递)。然而,重要的是要注意,PHP 不是面向对象的语言 - 它是一种提供许多OO功能的脚本语言,并且忘记了这一点。 system.io.stream提供的方法的功能是通过程序函数在PHP中提供的,这些函数接受流资源作为参数,并且您应该使用哪些函数取决于您正在使用的流的类型。
sockets,fread()
等人可以读取和写入大多数流资源类型(但不是全部 - 一个值得注意的例外是fwrite()
扩展名创建的例外)。 streams"扩展程序" (在很长一段时间内在所有新的PHP安装中默认启用)尝试提供一个通用层来创建,访问和操作各种不同类型的流,但它有它的局限性:
stream_select()
)如果要以正确的OO方式处理流,则必须编写一个包装过程函数调用的类。