列出PHP扩展,更方便的往某个点进行深入和掌握。关于PHP扩展加载顺序问题参考,。
一、影响PHP行为扩展
1、 是一个开放自由的 PHP opcode 缓存。*
2、 可以自定义错误处理规则,例如错误反馈级别和类型。错误日志记录方式,例如直接发送到日志服务器/发送到指定邮件(或电子邮件服务器)/发送到系统日志,从而方便记录网站或者应用程序重要部分。**
3、 在运行时跟踪并转储文件包含和类继承的层次结构。可以获取include应用文件资源。*
4、 把预编译字节码存储到共享内存中提高PHP性能,省去PHP每次加载和解析PHP脚本的开销。5.5+ ** 5.4- * 。
5、 控制数据输出,尤其对PHP开始输出数据后,HTTP响应头信息(就是说可以先输出语句echo再写header最后发送出缓冲区,正常情况下输出之后就不会再写header类的响应头信息了)。不影响header和setcookie响应头信息,影响echo这样的函数和代码间数据。**
6、 可以获取PHP本身的一些参数。例如运行时配置、加载的扩展、版本。PHP最好的函数phpinfo; **
7、 是一个轻量级的分层性能测量分析器。可以测试运行耗时、CPU、内存消耗。*
二、压缩归档扩展
1、 此扩展可以让你透明地读写ZIP压缩文档以及它们里面的文件。编译 PHP 时用 --enable-zip开启。5.2.0+ *
三、加密扩展
1、 信息摘要(哈希)引擎。允许使用各种哈希算法直接或增量处理任意长度的信息。5.1.2+**
2、OpenSSL 对称/非对称加解密,以及 PBKDF2、 PKCS7、 PKCS12、 X509 和其他加密操作。除此之外还提供了 TLS 流的实现。后续可能会追加其他加解密方式。使用open SSL函数必须安装OpenSSL系统库,强烈建议使用最新的OpenSSL系统库,否则web服务器很容易受到攻击。资源类型:在OpenSSL模块中有三种资源类型。第一种是一个 pkey(公钥或私钥)标识符,第二种是一个X509证书标识符,第三种是 CSR (证书签名请求) 标识符。要使用 PHP 的 OpenSSL 支持,你应该使用--with-openssl[=DIR] 参数来编译PHP.**
3、 密码散列算法 API 提供了简单易用的 crypt() 包装, 以一种简洁易用安全的方式创建和管理密码。5.5+*
四、数据库相关扩展
1、数据库抽象层 一个访问数据库的轻量级一致接口,数据对象。利用PDO扩展并不能实现数据库功能,依赖于一个具体的数据库PDO驱动来访问数据库服务。5.1+**
2、(MongoDB旧版本)NoSQL数据库喽。*
3、 三者关系请看链接。*
4、 数据库是一个开源产品,不需要成本。PuxGres最初是在UC伯克利计算机科学系开发的,它开创了许多在商业数据库中变得可用的对象关系概念。它提供了SqL92/Sql 99语言支持、事务、引用完整性、存储过程和类型扩展性。PostgreSQL是这个原始伯克利代码的开源后代。*
5、SQLite 这是SQLite可嵌入SQL数据库引擎的扩展。SQLite是一个实现可嵌入SQL数据库引擎的C库。与SQLite库链接的程序可以在不运行单独的RDBMS过程的情况下访问SQL数据库。
五、日期与时间相关扩展
1、 获取运行PHP服务器日期、时间,并且可以格式化和格式调整。PHP以64为数字存储覆盖当前时间前后2090亿年的时间,依赖于服务器区域设置,要考虑 (例如:使用 $date = strtotime('+7 days', $date) 而不是 $date += 72460*60) 和闰年的情况。**
六、文件系统相关扩展
1、 目录操作相关函数,例如获取当前工作目录,当启用安全模式部分函数,可能根据当前用户权限是否允许被运行。**
2、 获取文件类型和编码相关信息,是通过 魔术 字节序列 好高大上名词系统相关的概念。不是百分之百准确,但工作的很好。5.3+** 5.2-*
3、 例如fopen相关操作扩展。**
七、国际化与字符编码支持相关扩展
1、 字符集相互转换扩展,支持的字符集,依赖于系统的libiconv。在某些系统可能达不到预期效果,要想保证绝对一致性,安装 5.0.0+* 默认激活
2、 顾名思义为了处理多字节编码的产物,专门处理多字节编码问题和单字节和多字节编码转换。了解 **
八、图像生成和处理相关扩展
1、 通过使用 exif 扩展,你可以操作图像元数据。 例如:你可以使用 exif 相关的函数从数码相机拍摄的图片文件中读取元数据。 通常 JPEG 和 TIFF 格式的图像文件都包含元数据。如果处理多字节编码依赖于mbstring扩展 *
2、 结合PHP可以直接将图像数据流输出到浏览器及图像处理,不同格式图片可能需要其他的扩展,也可以结合exif扩展获取数码相机拍摄图片的元信息。要激活 GD 支持,配置 PHP 时加上 --with-gd[=DIR] ,DIR 是 GD 的基本安装目录。*
3、是用 ImageMagic API 来创建和修改图像的PHP官方扩展。 ImageMagick® 是用来创建,编辑,合并位图图像的一套组件。 它能够用于读取,转换,写入多种不同格式的图像。 包含 DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, 和 TIFF。**
九、邮件相关扩展
1、 发送邮件 **
十、数据扩展
1、 提供了支持用字符串表示的任意大小和精度的数字的二进制计算,最多为2147483647-1(或0x7FFFFFFF-1)。PHP 编译时配置了 --enable-bcmath 时可用 *
2、Math 只处理计算机上整数和浮点类型的范围内的值,如果需要处理更大的数字就要用到BCMath扩展。**
十一、非文本内容的 MIME 输出相关扩展
1、 创建PDF文档扩展,从PHP4.0开始,PHP5.0.2废弃了大量函数 *
2、 是类似PDF,是PDF升级版,对文档文字输出比前者好一些。*
十二、进程控制相关扩展
1、 PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。*
2、 提供执行系统本身命令的能力, 以及安全执行系统命令。例如:exec函数 **
3、多线程控制支持面向对象API并可在多个线程之前进行同步控制,遗憾的是仅支持命令行sapis,PHP7+ ZTS 模式是安全的,小于是不安全的。*
十三、Session相关扩展
1、 提供会话支持PHP 中是在并发访问时由一个方法来保存某些数据.从而使你能够构建更多的定制程序,一般通过HTTP首部cookie传输也可以通过URL参数传输。**
十四、文本处理相关扩展
1、 这些函数中使用的模式语法非常类似 perl。PCRE 是 PHP 核心扩展,所以总是启用的。 默认情况下,该扩展使用内置的 PCRE library。支持此扩展,简便。**
2、POSIX Regex 正则表达式扩展 PHP5.3+废弃 *
3、 这些都是以各种方式处理字符串的函数,例如echo rtrim explode函数;
十五、变量与类型相关扩展
1、 允许你通过不同的方式来使用和操作数组,PHP 支持简单数组和多维数组,数组可由用户自己创建也可以由其它函数创建。有很多特殊的数据库处理函数可以从数据库查询中返回数组以及一些返回数组的函数。**
2、 这些函数允许你获得类和对象实例的相关信息,例如对象和类关系、继承关系等信息。**
3、 检测一个字符或者字符串中是否包含某类型,例如ctype_alnum — 做字母和数字字符检测。 **
4、 处理变量与类型相关的函数吧,这里面的函数在在数据扩展或者类/对象扩展中存在。**
5、 扩展包含一组特定的强类型类来处理特定的设置和哈希实现。*
6、 添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。php5+ **
7、 有关变量如何运行的相关信息,例如var_dump is_real等函数。**
8、 该扩展用于验证或净化数据,如用户提供输入时,尤其有用。验证或检查数据是否满足某条件根据,不会改变数据本身。净化数据通过不需要的字符来改变它,不验证数据。flags根据需要调整行为,传递一个标志验证邮箱FILTER_VALIDATE_EMAIL 等。 php5.2+**
十六、XML相关扩展
1、 操作xml文档扩展,以下核心扩展依赖于此LBXML扩展:DOM、LIbXML、SimpleXML、SOAP、WDDX、XSL、XML、XMLReader、XMLRPC和XMLWrror。php5.1.0+ 默认编译时启用但有时是不启用的。**
2、允许您通过PHP的DOM API对XML文档进行操作。依赖于libxml PHP 扩展,默认开启。**
3、 扩展提供了一个非常简单和易于使用的工具集,能将 XML 转换成一个带有一般属性选择器和数组迭代器的对象。**
4、XML解析器 支持 James Clark 使用 PHP 编写的 expat,可以解析XML文档,并为不同的XML事件定义处理程序,调节参数。支持3种编码, US-ASCII, ISO-8859-1 和 UTF-8不支持UTF-16。**
5、 扩展是一个XML拉式解析器。读取器充当在文档流上向前移动的光标,并在途中的每个节点上停止。PHP5.1+**
6、 这是XMLoWror扩展。它封装LIbXML XMLcript API。 此扩展代表一个提供非缓存、只转发生成XML数据流或文件的工具。 此扩展可用于面向对象的风格或过程性风格。记录的每种方法描述了可选的过程调用。php5+ **
十七、其他扩展
1、 扩展可以通过 IP 地址来确定地理位置。比如城市、州、国家、经度、纬度以及其他信息,比如 ISP (因特网服务提供商)和网络连接类型。依赖于系统 GeoIP C 语言库的1.4.0及以上版本。*
2、 PHP绑定了 FANN (快速人工神经网络) 库,该库实现了多层人工神经网络从而为全连接网络和稀疏连接网络提供支持。 该库是一个让训练数据集变得简单的框架。上手时快速,简单,文档也很丰富。依赖于linux系统libfann库, php5.2.0+
3、实现了 » JavaScript对象符号(JSON) 数据转换格式。PHP 5 中的解码分析器基于 Douglas Crockford 的 JSON_checker。 PHP 7 中是改进的全新解析器,专门为 PHP 订制,软件许可证为 PHP license。例如json_encode php5.2+ **
4、" 是一个功能强大,速度快,轻量级,可嵌入的脚本语言。" 这个扩展嵌入Lua解释器,并对lua变量和函数提供面向对象的API。*
5、 (手册中说:因为这些函数不适合其他章节,所以放置于此) 此扩展包含杂项函数,包括die、exit、uniqid等 **
6、是用于解决典型问题(standard problems)的一组接口与类的集合。PHP5+**
SPL补充:从5.3之前默认是关闭的,PHP5.3+成为PHP内核组件一部分。
7、 是概括文件、网络、数据压缩和共享共同功能和用途集合的其他操作的方式。在最简单的定义中,流是一种资源对象,它表现出可流动的行为。也就是说,它可以以线性方式读取或写入,并且可以将FISKE()用于流内的任意位置。**
8、SWOOL是一种使用事件驱动、异步、非阻塞I/O模型的高性能网络框架。它可以用于开发高性能、可扩展、并发的TCP、UDP、UNIX套接字、HTTP、WebSocket服务。*
9、 处理URL字符串: 编码,解码和解析。例如base64_decode函数等。 **
10、Yaf(The Yet Another Framework)扩展是一个用来开发web应用的php框架。php5.1+*
11、 是一个扩展,用于检测XSS代码(污染字符串)。并且还可以用于发现SQL注入漏洞,以及shell注入等。*
12、 PHP7高效的数据结构,可以作为 array 的替代。*
十八、针对服务器扩展
1、 仅在 PHP 以 Apache 模块运行时有效。*
2、FPM (FastCGI 进程管理器) 是一个可选的 PHP FastCGI 实现并且附加了一些(主要是)对高负载网站很有用的特性。php5.3.3+**
十九、WEB服务
1、 此扩展提供 OAuth 消费方和提供方之间的绑定。OAuth 是一种建立在 HTTP 之上的授权协议,用于允许应用程序安全访问数据而无需存储用户名和密码。PHP 5.1+*
2、扩展可以用来编写SOAP服务器和客户端。它支持SOA 1.1、.SOAP 1.2和WSDL 1.1规范的子集。依赖于libxml扩展。*
3、是一个轻量级, 高效的RPC框架, 它提供了一种简单方法来让PHP项目之间可以互相远程调用对方的本地方法. 并且Yar也提供了并行调用的能力. 可以支持同时调用多个远程服务的方法. *
4、 能够连接通讯各种服务器、使用各种协议。libcurl 目前支持的协议有 http、https、ftp、gopher、telnet、dict、file、ldap。 libcurl 同时支持 HTTPS 证书、HTTP POST、HTTP PUT、 FTP 上传(也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies、用户名+密码的认证。*
5、 本扩展中的函数实现了通过 FTP 协议访问文件服务器的客户端,提供了对于 FTP 服务器完整的访问及控制功能。如果只是简单的从 FTP 服务器读取或向服务器写入一个文件, 请考虑使用 ftp:// 包装器 和 文件系统函数。*
6、是一种通用的应用程序框架,用于将工作分发给多个机器或进程。它允许应用程序并行完成任务,加载平衡处理,并调用函数之间的语言。该框架可用于各种应用程序,从高可用性网站到数据库复制事件的传输。依赖于libgearman、libevent、uuid扩展以及gearman运行服务。*
7、Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了降低动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品。提供了一个session处理器,4.3.3+*
8、memcached是一个高性能分布式的内存对象缓存系统, 通常被用于降低数据库加载压力以提高动态web应用的响应速度。 此扩展使用了libmemcached库提供的api与memcached服务端进行交互。它同样提供了一个session处理器(memcached)。 它同时提供了一个session处理器(memcached)。5.2.0+ *
9、 提供一系列联网函数。例如header、setcookie函数等。 **
10、 扩展是基于流行的BSD sockets,实现了和socket通讯功能的底层接口,它可以和客户端一样当做一个socket服务器。编译PHP时必须在配置中添加--enable-sockets 配置项来启用。PHP 5.0.0 开始加入了对 IPv6 的支持。*
11、包装器提供了一个经典的UNIX机制,它被设计用来检查远程客户端是否能够从给定的IP地址连接。*
12、 是一个能让你快速设计、开发基于消息应用的函数库。*
13、此扩展使用LiBooCoever库提供与ZooKeor服务通信的API。 是一个Apache项目,它支持集中服务来维护配置信息、命名、提供分布式同步和提供群组服务。
*非核心扩展,需要单独安装。
**核心扩展,不需要安装(默认编译时启用我就认为是核心的,可能分类不是很明确)。
总结:以上是PHP大部分扩展,并不是全部。可能有很多重要的扩展没有列出,概括的列出扩展只是为了更好的往某个单知识点研究,解决根本问题。
例如计算字符串长度,普通处理strlen函数即可处理,但是遇到多字节编码时可能会出现各种问题,乱码、报错,达不到预期的效果等。解决这个问题就要用到mbstring扩展中的函数mb_strlen,它可以指定字节编码如UTF-8等等。概括列出扩展就是解决类似这种根本问题(对于PHP来说)。
之后会对某个扩展进行剖析研究。
声明:和您的如有冲突请及时联系修正。
参考文献