php-streams扩展

  一. streams是干嘛的:
       用于统一文件、网络、数据压缩等类文件操作方式,并为这些类文件操作提供一组通用的函数接口。

  二. stream是具有流式行为的资源对象,这个对象有一个包装类 例如:
     print_r(stream_get_wrappers());//返回所有可用流包装器的名称
	/*
		Array
		(
		  [0] => php   /** 它是PHP用来处理IO流的包装类,如php://stdin php://stdout **/
		  [1] => file
		  [2] => glob
		  [3] => data
		  [4] => http
		  [5] => ftp
		  [6] => zip
		  [7] => compress.zlib
		  [8] => https
		  [9] => ftps
		  [10] => phar
		)
	*/

  三. PHP的默认包装类就是file:// ;; 所以readfile(‘/path/to/somefile.txt‘)或者readfile(‘file:///path/to/somefile.txt‘),这两种方式是等效的

  四. 注册自己的包装器(自定义 协议处理器和流),用于所有其它的文件系统函数中(例如 fopen() , fread() 等)

  五. PHP还可以通过context和filter对包装类进行修饰和增强。
      1. 关于context,如PHP通过stream_context_create()来设置获取文件超时时间
        $opts = array( ‘http‘=>array( ‘method‘=>"GET", ‘timeout‘=>60) );
		$context = stream_context_create($opts);
		$html =file_get_contents(‘http://www.jb51.net‘, false, $context);

	   2. 关于filter过滤器,首先来看看PHP有哪些内置的过滤器:
		   print_r(stream_get_filters());
			/*
			Array
			(
			  [0] => convert.iconv.*
			  [1] => mcrypt.*
			  [2] => mdecrypt.*
			  [3] => string.rot13
			  [4] => string.toupper
			  [5] => string.tolower
			  [6] => string.strip_tags
			  [7] => convert.*
			  [8] => consumed
			  [9] => dechunk
			  [10] => zlib.*
			)
			*/
       3. 自定义的过滤器   通过stream_filter_register()和内置的php_user_filter可创建自定义的过滤器
时间: 2024-10-10 06:15:14

php-streams扩展的相关文章

[非官方]ArcGIS10.2 for Desktop扩展工具包——XTools Pro

XTools Pro 是一套为ArcGIS平台设计的矢量空间分析. 形状转换和表管理扩展工具,大大增强了 ArcGIS 的功能,使用该工具能够提高 ArcGIS 用户的效率和性能. XTools Pro 包括矢量空间分析. 形状转换. 并表管理的 70 多个工具和超过 40 地理处理工具.在一个单一的工具栏为 ArcGIS 用户收集的最基本的功能.新的实用工具有助于节省您的时间和提高工作效率! 该工具相当于把ArcGIS Desktop平台软件更加的实用化,业务化,更贴合用户的应用,非常多相似的

PHP扩展-生命周期和内存管理

1. PHP源码结构 PHP的内核子系统有两个,ZE(Zend Engine)和PHP Core.ZE负责将PHP脚本解析成机器码(也成为token符)后,在进程空间执行这些机器码:ZE还负责内存管理,变量作用域管理和对PHP函数的调度管理. PHP Core负责和SAPI层的通信:PHP Core也为safe_mode, open_basedir的检查提供了统一控制层:PHP Core还提供了streams层,用于用户域的文件和网络IO操作.其中SAPI(Server Application

使用phpize建立php扩展(Cannot find config.m4)

php源码:/root//php-5.5.31php安装: /usr/local/php [[email protected] root]# phpizeCannot find config.m4.Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module [[email protected] root]# phpizeCannot find config.m

C# Java 3DES加密解密 扩展及修正\0 问题

注: C#已亲测及做扩展, Java 部分未做验证 /// <summary> /// 3DES加密解密 /// ----------------------------------------------------------- /// 说明: /// 转载自网上http://bbs.csdn.net/topics/350158619 /// 并加以扩展 /// 修正: /// 1. 修改正解密后出现 '\0' /// 注: 1. 向量不能小于8位 /// 2. 明文末尾如果是带'\0'字

Java I/O 扩展

Java I/O 扩展 NIO Java 的NIO(新IO)和传统的IO有着同样的目的: 输入 输出 .可是NIO使用了不同的方式来处理IO,NIO利用内存映射文件(此处文件的含义能够參考Unix的名言一切皆文件)来处理IO, NIO将文件或文件的一段区域映射到内存中(相似于操作系统的虚拟内存),这样就能够像訪问内存一样来訪问文件了. Channel 和 Buffer是NIO中的两个核心概念: Channel是对传统的IO系统的模拟,在NIO系统中全部的数据都须要通过Channel传输;Chan

[翻译和注解]Kafka Streams简介: 让流处理变得更简单

Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Kafka Streams还没有正式发布,所以具体的API和功能和0.10.0.0版(2016年6月发布)有所区别.但是Jay Krpes在这简文章里介绍了很多Kafka Streams在设计方面的考虑,还是很值得一看的. 以下的并不会完全按照原文翻译,因为那么搞太累了……这篇文件的确很长,而且Jay

Discretized Streams: An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters

阅读笔记 概述: 本文同样发表于2012年.提出了一种称为离散化数据流(Discretized Streams,D-Streams)的编程模型. 该模型提供了一种高级函数式API,具有高度的一致性和强大的容错能力. 基于Spark分布式计算框架,进行扩展实现了一个D-Stream的原型,称为Spark Streaming. 研究背景: 许多大数据应用要求实现实时响应. 社交网络应用需要在几分钟内分析出当前的热点话题. 广告提供商需要针对用户对广告的点击行为进行建模并训练. 服务器管理者需要在几秒

深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)

转:http://zh.lucida.me/blog/java-8-lambdas-inside-out-library-features/ 关于 深入理解 Java 8 Lambda(语言篇--lambda,方法引用,目标类型和默认方法) 深入理解 Java 8 Lambda(类库篇--Streams API,Collector 和并行) 深入理解 Java 8 Lambda(原理篇--Java 编译器如何处理 lambda) 本文是深入理解 Java 8 Lambda 系列的第二篇,主要介绍

Kafka Streams入门指南

应该会有不少人觉得我标题打错了,是不是想讲SparkStreaming或者Kafka+SparkStreaming啊?实际上这不是笔误,Kafka Streams是Kafka 0.10提供的新能力,用于实时处理Kafka中的数据流,和现有的流处理技术如SparkStreaming,Storm,Flink还是有些区别的. 1 概况 Kafka Streams是一套处理分析Kafka中存储数据的客户端类库,处理完的数据或者写回Kafka,或者发送给外部系统.它构建在一些重要的流处理概念之上:区分事件

[转]深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)

以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-library-features 本文谢绝转载,如需转载需征得作者本人同意,谢谢. -------------------------------------内容分割线--------------------------------------------------------- 深入理解Java