列出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來講)。
以後會對某個擴展進行剖析研究。
聲明:和您的若有衝突請及時聯繫修正。
參考文獻