PHP经常使用扩展及服务记录

列出PHP扩展,更方便的往某个点进行深刻和掌握。关于PHP扩展加载顺序问题参考,保证PHP扩展的依赖关系php

1、影响PHP行为扩展html

一、PHP opcode缓存扩展Alternative PHP Cache (APC) 是一个开放自由的 PHP opcode 缓存。*mysql

二、PHP错误处理和日志记录扩展 能够自定义错误处理规则,例如错误反馈级别和类型。错误日志记录方式,例如直接发送到日志服务器/发送到指定邮件(或电子邮件服务器)/发送到系统日志,从而方便记录网站或者应用程序重要部分。**linux

三、inclued 扩展 在运行时跟踪并转储文件包含和类继承的层次结构。能够获取include应用文件资源。*web

四、OPcache扩展 把预编译字节码存储到共享内存中提升PHP性能,省去PHP每次加载和解析PHP脚本的开销。5.5+ ** 5.4- * 。正则表达式

五、输出控制扩展 控制数据输出,尤为对PHP开始输出数据后,HTTP响应头信息(就是说能够先输出语句echo再写header最后发送出缓冲区,正常状况下输出以后就不会再写header类的响应头信息了)。不影响header和setcookie响应头信息,影响echo这样的函数和代码间数据。**算法

六、PHP选项或信息扩展 能够获取PHP自己的一些参数。例如运行时配置、加载的扩展、版本。PHP最好的函数phpinfo; **sql

七、XHProf扩展 是一个轻量级的分层性能测量分析器。能够测试运行耗时、CPU、内存消耗。*shell

2、压缩归档扩展数据库

一、Zip 此扩展可让你透明地读写ZIP压缩文档以及它们里面的文件。编译 PHP 时用 --enable-zip开启。5.2.0+ *

3、加密扩展

一、Hash扩展 信息摘要(哈希)引擎。容许使用各类哈希算法直接或增量处理任意长度的信息。5.1.2+**

二、OpenSSL 对称/非对称加解密,以及 PBKDF二、 PKCS七、 PKCS十二、 X509 和其余加密操做。除此以外还提供了 TLS 流的实现。后续可能会追加其余加解密方式。使用open SSL函数必须安装OpenSSL系统库,强烈建议使用最新的OpenSSL系统库,不然web服务器很容易受到攻击。资源类型:在OpenSSL模块中有三种资源类型。第一种是一个 pkey(公钥或私钥)标识符,第二种是一个X509证书标识符,第三种是 CSR (证书签名请求) 标识符。要使用 PHP 的 OpenSSL 支持,你应该使用--with-openssl[=DIR] 参数来编译PHP.**

三、密码散列算法 密码散列算法 API 提供了简单易用的 crypt() 包装, 以一种简洁易用安全的方式建立和管理密码。5.5+*

4、数据库相关扩展

一、数据库抽象层 PDO 一个访问数据库的轻量级一致接口,数据对象。利用PDO扩展并不能实现数据库功能,依赖于一个具体的数据库PDO驱动来访问数据库服务。5.1+**

二、Mongo扩展(MongoDB旧版本)NoSQL数据库喽。*

三、MySQL MySQLi PDO MySQL驱动 三者关系请看连接。*

四、PostgreSQL 数据库是一个开源产品,不须要成本。PuxGres最初是在UC伯克利计算机科学系开发的,它开创了许多在商业数据库中变得可用的对象关系概念。它提供了SqL92/Sql 99语言支持、事务、引用完整性、存储过程和类型扩展性。PostgreSQL是这个原始伯克利代码的开源后代。*

五、SQLite 这是SQLite可嵌入SQL数据库引擎的扩展。SQLite是一个实现可嵌入SQL数据库引擎的C库。与SQLite库连接的程序能够在不运行单独的RDBMS过程的状况下访问SQL数据库。

5、日期与时间相关扩展

一、日期/时间扩展 获取运行PHP服务器日期、时间,而且能够格式化和格式调整。PHP以64为数字存储覆盖当前时间先后2090亿年的时间,依赖于服务器区域设置,要考虑夏令时 (例如:使用 $date = strtotime('+7 days', $date) 而不是 $date += 72460*60) 和闰年的状况。**

6、文件系统相关扩展

一、目录扩展 目录操做相关函数,例如获取当前工做目录,当启用安全模式部分函数,可能根据当前用户权限是否容许被运行。**

二、Fileinfo 获取文件类型和编码相关信息,是经过 魔术 字节序列 好高大上名词系统相关的概念。不是百分之百准确,但工做的很好。5.3+** 5.2-*

三、文件系统扩展 例如fopen相关操做扩展。**

7、国际化与字符编码支持相关扩展

一、iconv 字符集相互转换扩展,支持的字符集,依赖于系统的libiconv。在某些系统可能达不到预期效果,要想保证绝对一致性,安装libiconv 5.0.0+* 默认激活

二、mbstring 多字节字符串扩展 顾名思义为了处理多字节编码的产物,专门处理多字节编码问题和单字节和多字节编码转换。了解 单字节和多字节概念 **

8、图像生成和处理相关扩展

一、Exif 经过使用 exif 扩展,你能够操做图像元数据。 例如:你可使用 exif 相关的函数从数码相机拍摄的图片文件中读取元数据。 一般 JPEG 和 TIFF 格式的图像文件都包含元数据。若是处理多字节编码依赖于mbstring扩展 *

二、GD扩展 结合PHP能够直接将图像数据流输出到浏览器及图像处理,不一样格式图片可能须要其余的扩展,也能够结合exif扩展获取数码相机拍摄图片的元信息。要激活 GD 支持,配置 PHP 时加上 --with-gd[=DIR] ,DIR 是 GD 的基本安装目录。*

三、Imagick 是用 ImageMagic API 来建立和修改图像的PHP官方扩展。 ImageMagick® 是用来建立,编辑,合并位图图像的一套组件。 它可以用于读取,转换,写入多种不一样格式的图像。 包含 DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, 和 TIFF。**

9、邮件相关扩展

一、Mail 发送邮件 **

10、数据扩展

一、BCMath 任意精度数学 提供了支持用字符串表示的任意大小和精度的数字的二进制计算,最多为2147483647-1(或0x7FFFFFFF-1)。PHP 编译时配置了 --enable-bcmath 时可用 *

二、Math 只处理计算机上整数和浮点类型的范围内的值,若是须要处理更大的数字就要用到BCMath扩展。**

11、非文本内容的 MIME 输出相关扩展

一、PDF扩展 建立PDF文档扩展,从PHP4.0开始,PHP5.0.2废弃了大量函数 *

二、PS扩展 是相似PDF,是PDF升级版,对文档文字输出比前者好一些。*

12、进程控制相关扩展

一、PCNTL PHP的进程控制支持实现了Unix方式的进程建立, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。*

二、程序执行扩展 提供执行系统自己命令的能力, 以及安全执行系统命令。例如:exec函数 **

三、pthreads 多线程控制支持面向对象API并可在多个线程以前进行同步控制,遗憾的是仅支持命令行sapis,PHP7+ ZTS 模式是安全的,小因而不安全的。*

十3、Session相关扩展

一、session扩展 提供会话支持PHP 中是在并发访问时由一个方法来保存某些数据.从而使你可以构建更多的定制程序,通常经过HTTP首部cookie传输也能够经过URL参数传输。**

十4、文本处理相关扩展

一、PCRE(正则表达式支持Perl)扩展 这些函数中使用的模式语法很是相似 perl。PCRE 是 PHP 核心扩展,因此老是启用的。 默认状况下,该扩展使用内置的 PCRE library。支持此扩展,简便。**

二、POSIX Regex 正则表达式扩展 PHP5.3+废弃 *

三、字符串扩展 这些都是以各类方式处理字符串的函数,例如echo rtrim explode函数;

十5、变量与类型相关扩展

一、数组扩展 容许你经过不一样的方式来使用和操做数组,PHP 支持简单数组和多维数组,数组可由用户本身建立也能够由其它函数建立。有不少特殊的数据库处理函数能够从数据库查询中返回数组以及一些返回数组的函数。**

二、类/对象扩展 这些函数容许你得到类和对象实例的相关信息,例如对象和类关系、继承关系等信息。**

三、Ctype 检测一个字符或者字符串中是否包含某类型,例如ctype_alnum — 作字母和数字字符检测。 **

四、函数处理扩展 处理变量与类型相关的函数吧,这里面的函数在在数据扩展或者类/对象扩展中存在。**

五、Quhhash 扩展包含一组特定的强类型类来处理特定的设置和哈希实现。*

六、反射扩展 添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。php5+ **

七、Variable handling 函数扩展 有关变量如何运行的相关信息,例如var_dump is_real等函数。**

八、Filter 该扩展用于验证或净化数据,如用户提供输入时,尤为有用。验证或检查数据是否知足某条件根据,不会改变数据自己。净化数据经过不须要的字符来改变它,不验证数据。flags根据须要调整行为,传递一个标志验证邮箱FILTER_VALIDATE_EMAIL 等。 php5.2+**

十6、XML相关扩展

一、libxml 操做xml文档扩展,如下核心扩展依赖于此LBXML扩展:DOM、LIbXML、SimpleXML、SOAP、WDDX、XSL、XML、XMLReader、XMLRPC和XMLWrror。php5.1.0+ 默认编译时启用但有时是不启用的。**

二、DOM扩展容许您经过PHP的DOM API对XML文档进行操做。依赖于libxml PHP 扩展,默认开启。**

三、SimpleXML 扩展提供了一个很是简单和易于使用的工具集,能将 XML 转换成一个带有通常属性选择器和数组迭代器的对象。**

四、XML解析器 支持 James Clark 使用 PHP 编写的 expat,能够解析XML文档,并为不一样的XML事件定义处理程序,调节参数。支持3种编码, US-ASCII, ISO-8859-1 和 UTF-8不支持UTF-16。**

五、XMLRead 扩展是一个XML拉式解析器。读取器充当在文档流上向前移动的光标,并在途中的每一个节点上中止。PHP5.1+**

六、XMLWriter 这是XMLoWror扩展。它封装LIbXML XMLcript API。 此扩展表明一个提供非缓存、只转发生成XML数据流或文件的工具。 此扩展可用于面向对象的风格或过程性风格。记录的每种方法描述了可选的过程调用。php5+ **

十7、其余扩展

一、GeoIP 扩展能够经过 IP 地址来肯定地理位置。好比城市、州、国家、经度、纬度以及其余信息,好比 ISP (因特网服务提供商)和网络链接类型。依赖于系统 GeoIP C 语言库的1.4.0及以上版本。*

二、FANN扩展 PHP绑定了 FANN (快速人工神经网络) 库,该库实现了多层人工神经网络从而为全链接网络和稀疏链接网络提供支持。 该库是一个让训练数据集变得简单的框架。上手时快速,简单,文档也很丰富。依赖于linux系统libfann库, php5.2.0+

三、JSON 实现了 » JavaScript对象符号(JSON) 数据转换格式。PHP 5 中的解码分析器基于 Douglas Crockford 的 JSON_checker。 PHP 7 中是改进的全新解析器,专门为 PHP 订制,软件许可证为 PHP license。例如json_encode php5.2+ **

四、"Lua 是一个功能强大,速度快,轻量级,可嵌入的脚本语言。" 这个扩展嵌入Lua解释器,并对lua变量和函数提供面向对象的API。*

五、Misc. (手册中说:由于这些函数不适合其余章节,因此放置于此) 此扩展包含杂项函数,包括die、exit、uniqid等 **

六、SPL是用于解决典型问题(standard problems)的一组接口与类的集合。PHP5+**

SPL补充:从5.3以前默认是关闭的,PHP5.3+成为PHP内核组件一部分。

七、Streams 是归纳文件、网络、数据压缩和共享共同功能和用途集合的其余操做的方式。在最简单的定义中,流是一种资源对象,它表现出可流动的行为。也就是说,它能够以线性方式读取或写入,而且能够将FISKE()用于流内的任意位置。**

八、SWOOL是一种使用事件驱动、异步、非阻塞I/O模型的高性能网络框架。它能够用于开发高性能、可扩展、并发的TCP、UDP、UNIX套接字、HTTP、WebSocket服务。*

九、URLs 处理URL字符串: 编码,解码和解析。例如base64_decode函数等。 **

十、Yaf(The Yet Another Framework)扩展是一个用来开发web应用的php框架。php5.1+*

十一、Taint 是一个扩展,用于检测XSS代码(污染字符串)。而且还能够用于发现SQL注入漏洞,以及shell注入等。*

十二、Data Structures PHP7高效的数据结构,能够做为 array 的替代。*

十8、针对服务器扩展

一、Apache扩展 仅在 PHP 以 Apache 模块运行时有效。*

二、FPM (FastCGI 进程管理器) 是一个可选的 PHP FastCGI 实现而且附加了一些(主要是)对高负载网站颇有用的特性。php5.3.3+**

十9、WEB服务

一、OAuth 此扩展提供 OAuth 消费方和提供方之间的绑定。OAuth 是一种创建在 HTTP 之上的受权协议,用于容许应用程序安全访问数据而无需存储用户名和密码。PHP 5.1+*

二、SOAP扩展能够用来编写SOAP服务器和客户端。它支持SOA 1.一、.SOAP 1.2和WSDL 1.1规范的子集。依赖于libxml扩展。*

三、Yar 是一个轻量级, 高效的RPC框架, 它提供了一种简单方法来让PHP项目之间能够互相远程调用对方的本地方法. 而且Yar也提供了并行调用的能力. 能够支持同时调用多个远程服务的方法. *

四、cURL 可以链接通信各类服务器、使用各类协议。libcurl 目前支持的协议有 http、https、ftp、gopher、telnet、dict、file、ldap。 libcurl 同时支持 HTTPS 证书、HTTP POST、HTTP PUT、 FTP 上传(也能经过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies、用户名+密码的认证。*

五、FTP 本扩展中的函数实现了经过 FTP 协议访问文件服务器的客户端,提供了对于 FTP 服务器完整的访问及控制功能。若是只是简单的从 FTP 服务器读取或向服务器写入一个文件, 请考虑使用 ftp:// 包装器 和 文件系统函数。*

六、Gearman 是一种通用的应用程序框架,用于将工做分发给多个机器或进程。它容许应用程序并行完成任务,加载平衡处理,并调用函数之间的语言。该框架可用于各类应用程序,从高可用性网站到数据库复制事件的传输。依赖于libgearman、libevent、uuid扩展以及gearman运行服务。*

七、Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了下降动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品。提供了一个session处理器,4.3.3+*

八、memcached是一个高性能分布式的内存对象缓存系统, 一般被用于下降数据库加载压力以提升动态web应用的响应速度。 此扩展使用了libmemcached库提供的api与memcached服务端进行交互。它一样提供了一个session处理器(memcached)。 它同时提供了一个session处理器(memcached)。5.2.0+ *

九、网络 提供一系列联网函数。例如header、setcookie函数等。 **

十、Socket 扩展是基于流行的BSD sockets,实现了和socket通信功能的底层接口,它能够和客户端同样当作一个socket服务器。编译PHP时必须在配置中添加--enable-sockets 配置项来启用。PHP 5.0.0 开始加入了对 IPv6 的支持。*

十一、TCP包装器提供了一个经典的UNIX机制,它被设计用来检查远程客户端是否可以从给定的IP地址链接。*

十二、ZMQ 是一个能让你快速设计、开发基于消息应用的函数库。*

1三、此扩展使用LiBooCoever库提供与ZooKeor服务通讯的API。 ZooKever 是一个Apache项目,它支持集中服务来维护配置信息、命名、提供分布式同步和提供群组服务。

*非核心扩展,须要单独安装。

**核心扩展,不须要安装(默认编译时启用我就认为是核心的,可能分类不是很明确)。

总结:以上是PHP大部分扩展,并非所有。可能有不少重要的扩展没有列出,归纳的列出扩展只是为了更好的往某个单知识点研究,解决根本问题。

例如计算字符串长度,普通处理strlen函数便可处理,可是遇到多字节编码时可能会出现各类问题,乱码、报错,达不到预期的效果等。解决这个问题就要用到mbstring扩展中的函数mb_strlen,它能够指定字节编码如UTF-8等等。归纳列出扩展就是解决相似这种根本问题(对于PHP来讲)。

以后会对某个扩展进行剖析研究。

声明:和您的若有冲突请及时联系修正。

参考文献

PHP手册

保证PHP扩展的依赖关系

相关文章
相关标签/搜索