PHP中的流是什么呢_第1页
PHP中的流是什么呢_第2页
PHP中的流是什么呢_第3页
PHP中的流是什么呢_第4页
PHP中的流是什么呢_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP中的流是什么呢PHP中的流是什么呢流(streams)是PHP4.3版本引入的一个特性,主要是为了统一文件、sockets以及其他类似资源的工作方法。PHP4.3距今已经有很长时间了,但是很多程序员似乎都不能正确使用PHP中的流,当然这也包括我。以前也在一些程序中遇到过流的使用,如php:/input,大家知道PHP中的流吗?下面我们就给大家详细介绍一下吧!概述流是由PHP提供的资源,可以供我们透明的使用,而且流是一个非常强大的工具。适当的在程序中使用流,可以将我们的程序带到一个新的高度。PHP手册中对流的描述如下:复制代码 代码如下:Streams were introduced wi

2、th PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, an

3、d may be able to fseek() to an arbitrary locations within the stream.每一种流都实现了一个包装器(wrapper),包装器包含一些额外的代码用来处理特殊的协议和编码。PHP提供了一些内置的包装器,我们也可以很轻松的创建和注册自定义的包装器。我们甚至可以使用上下文(contexts)和过滤器来改变和增强包装器。流基础知识PHP中流的形式如::/。是包装器的名字,的内容取决于不同的包装器语法。默认的包装器是file:/,也就是说每次我们访问文件系统的时候都使用了流。例如,我们可以使用如下两种方式来读取文件:readfile(/pa

4、th/to/somefile.txt)和readfile(file:/path/to/somefile.txt),使用这两种方式读取文件,可以得到相同的结果。正如前面所说,PHP提供了一些内置的包装器、协议和过滤器。查看我们的.机器上安装了哪些包装器,可以使用如下几个函数:复制代码 代码如下:var_dump(stream_get_transports();var_dump(stream_get_wrappers();var_dump(stream_get_filters();?我本地的环境输出内容如下:复制代码 代码如下:array (size=8)0 = string tcp (lengt

5、h=3)1 = string udp (length=3)2 = string unix (length=4)3 = string udg (length=3)4 = string ssl (length=3)5 = string sslv3 (length=5)6 = string sslv2 (length=5)7 = string tls (length=3)array (size=12)0 = string https (length=5)1 = string ftps (length=4)2 = string compress.zlib (length=13)3 = string c

6、ompress.bzip2 (length=14)4 = string php (length=3)5 = string file (length=4)6 = string glob (length=4)7 = string data (length=4)8 = string http (length=4)9 = string ftp (length=3)10 = string phar (length=4)11 = string zip (length=3)array (size=12)0 = string zlib.* (length=6)1 = string bzip2.* (lengt

7、h=7)2 = string convert.iconv.* (length=15)3 = string string.rot13 (length=12)4 = string string.toupper (length=14)5 = string string.tolower (length=14)6 = string string.strip_tags (length=17)7 = string convert.* (length=9)8 = string consumed (length=8)9 = string dechunk (length=7)10 = string mcrypt.

8、* (length=8)11 = string mdecrypt.* (length=10)另外,我们可以自定义或者使用第三方的流。php:/包装器PHP有它自己的访问输入/输出(I/O)流的包装器。PHP有基本的php:/stdin,php:/stdout,php:/stderr包装器对应默认的I/O资源。还有一个php:/input流,它是一个只读的流,流内容是post请求的数据。当我们将数据放在一个post请求的body体内用来请求一个远程服务的时候,这个流特别好用。因为php:/input是最常用到的流,所以这里列出一些知识点:复制代码 代码如下:1.php:/input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php:/input不能用于enctype=multipart/form-data2.仅当Content-Type为application/x-www-form-urlencoded且提交方法是POST方法时,$_POST数据与php:/input数据才是”一致”(打上引号,表示它们格式不一致,内容一致)的。其它情况,它们都不一致3.php:/input读取不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论