PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種HTML內嵌式的語言,PHP與微軟的ASP很有幾分類似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有相似於C語言,如今被不少的網站編程人員普遍的運用。PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它能夠比 CGI 或者 Perl 更快速的執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;與一樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務器端執行,充分利用了服務器的性能;PHP執行引擎還會將用戶常常訪問的PHP程序駐留在內存中,其餘用戶在一次訪問這個程序時就不須要從新編譯程序了,只要直接執行內存中的代碼就能夠了,這也是PHP高效率的體現之一。PHP具備很是強大的功能,全部的CGI或者JavaScript的功能PHP都能實現,並且支持幾乎全部流行的數據庫以及操做系統。php
PHP 最初是1994年Rasmus Lerdorf建立的,剛剛開始只是一個簡單的用Perl語言編寫的程序,用來統計他本身網站的訪問者。後來又用C語言從新編寫,包括能夠訪問數據庫。在1995年以Personal Home Page Tools (PHP Tools) 開始對外發表第一個版本,Lerdorf寫了一些介紹此程序的文檔,而且發佈了PHP1.0。在這早期的版本中,提供了訪客留言本、訪客計數器等簡單的功能。之後愈來愈多的網站使用了PHP,而且強烈要且增長一些特性,好比循環語句和數組變量等等,在新的成員加入開發行列以後,在1995年中,PHP2.0發佈了。第二版定名爲PHP/FI(Form Interpreter)。PHP/FI加入了對mSQL的支持,今後創建了PHP在動態網頁開發上的地位。到了1996年末,有15000個網站使用 PHP/FI;時間到了1997年中,使用PHP/FI的網站數字超過五萬個。而在1997年中,開始了第三版的開發計劃,開發小組加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名爲PHP3。2000年,PHP4.0又問世了,其中增長了許多新的特性。java
PHP的特性包括如下幾點:正則表達式
開放的源代碼:全部的PHP源代碼事實上均可以獲得。算法
PHP是免費的。數據庫
基於服務器端:因爲PHP是運行在服務器端的腳本,能夠運行在UNIX、LINUX、WINDOWS下。編程
嵌入HTML:由於PHP能夠嵌入HTML語言,因此學習起來並不困難。數組
簡單的語言:PHP堅持腳本語言爲主,與Java以C++不一樣。服務器
效率高:PHP消耗至關少的系統資源。cookie
圖像處理:用PHP動態建立圖像多線程
PHP 3與PHP 4的比較
PHP3跟Apache服務器緊密結合的特性;加上它不斷的更新及加入新的功能;並且幾乎支持全部主流與非主流數據庫;再以它能高速的執行效率,使得PHP在1999年中的使用站點已經超過了150000萬。加上它的源代碼徹底公開,在 Open Source意識擡頭的今天,它更是這方面的中流砥柱。不斷地有新的函數庫加入,以及不停地更新的活力,使得PHP不管在UNIX、LINUX或是Windows的平臺上均可以有更多新的功能。它提供豐富的函數,使得在程序設計方面有着更好的支持。
PHP4.0整個腳本程序的核心大幅更動,讓程序的執行速度,知足更快的要求。在最佳化以後的效率,已較傳統CGI或者ASP等程序有更好的表現。並且還有更強的新功能、更豐富的函數庫。不管您接不接受,PHP 都將在 Web CGI 的領域上,掀起巔覆性的革命。對於一位專業的Web Master 而言,它將也是必修課程之一。
PHP 4.0是更有效的,更可靠的動態Web頁開發工具,在大多數狀況運行比 PHP 3.0要快,其腳本描述更強大而且更復雜, 最顯著的特徵是速率比的增長。PHP4.0這些優異的性能是PHP 腳本引擎從新設計產生的結果:引擎由 AndiGutmans 和 Zeev Suraski從底層全面重寫。PHP4.0 腳本引擎 ——Zend 引擎,使用了一種更有效的編譯——執行方式, 而不是PHP 3.0 採用的執行 ——當解析時模型。
PHP4在3.0版的基礎上增長或加強了許多有用的特徵,主要以下:
(1)別名:在PHP4中,能夠利用引用爲變量賦值,這給編程帶來了很大的靈活性。
(2)擴充了API 模塊:PHP 4.0 爲擴展的 API 模塊的提供了擴展PHP接口模塊, 它比舊的 API 版本顯著地快。 PHP 模塊已有的及最經常使用的接口多數被轉換到使用這個擴展的接口。
(3)自動資源釋放:PHP4增長了引用計數功能,這種新技術的引入使PHP4具備了自動內存管理功能,減輕了開發人員的負擔。
(4)布爾類型:PHP 4.0 支持布爾類型。
(5)進程生成:在 UNIX 環境下的 PHP 4.0 提供了一個很智能和通用的生成進程, 使用了一種名爲基於automake/libtool的系統生成技術。
(6)COM/DCOM 支持:PHP 4.0 提供 COM/DCOM 支持 ( 僅用於Windows 環境 ) 能夠無縫地存取和訪問 COM 對象。
(7)與PHP 3.0 兼容性很好:PHP 4.0 是與 PHP 3.0 代碼向後兼容性接近100% 。因爲 PHP 4 的改進的體系結構,二者有一些細微的差異,可是大多數人將可能永遠不可能趕上這種狀況。
PHP介紹
(8)配置:PHP4從新設計和加強了PHP。ini文件,這使得用PHP。ini來配置PHP顯得極爲容易,這個文件能夠在運行時被Apache(unix系統)或由Windows 註冊(Windows 環境)。
(9)加密支持:PHP4實現了完整的加密, 這些加密功能是一個完整的mycrypt庫,而且 PHP 4.0 支持哈希函數。Blowfish,TripleDES,MD5,而且SHA1 也是可以使用的一些加密算法。
(10)類型檢查:PHP 4.0 支持同一操做符用於評類型檢查:===( 3 等號運算符 ), 爲在兩個值和其類型之間做檢查。例如, 3 ===3 將視爲假 ( 類型是不一樣的 ), 而 3 ==3 ( 相等判斷 ) 將視爲真。
(11)FTP 支持:PHP 4.0 支持 FTP 。一般, 你會爲經過一個調制解調器鏈接下載一個大文件提供一個接口。然而, 若是你確實有須要,可使用PHP 。
(12)PHP4新增函數或功能加強函數:PHP 4.0 新增了許多函數,同時也將許多現有的函數功能進行了加強,如下是一些例子。 array_count_values() eval() foreach() nclude() ob_end_clean() ob_end_flush() ob_get_contents() ob_start() strip_tags() unset()
(13)here打印:PHP 4.0 的Here打印是與Perl相似的, 儘管徹底不相同。Here是打印大容量文章的一個有用的方法,例如在 HTML文件中,不會漏掉任何一個字符,例如目錄標記。
(14)HTTP Session fallback 系統:爲 HTTP Session管理的一個 fallback 系統在 PHP 4.0被實現 。缺省狀況下,Session標識符由cookies存儲。若是沒有cookies支持或一項cookies任務失敗,Session標識符自動被建立並在 URL 的查詢字符串中被攜帶。
(15)ISAPI 支持:PHP 4.0 能做爲一個個性化的 ISAPI 模塊做爲 IIS插件 。這比 PHP 3.0 更有效, 它做爲一個外部的程序來運行。
(16)內存:PHP 4.0 能更有效的使用內存, 致使較少的內存佔用消耗,這主要歸功於引用計數技術的實現。
(17)其餘類成員函數:在 PHP 4.0 你能在成員函數自己的做用域或全局範圍內調用其餘類的成員函數。例如,你能用一個子函數覆蓋父函數,並在子函數中調用父函數。
(18)多維數組:在 PHP 4.0 ,利用GET,POST, Cookies的進行的數據傳輸支持多維數組。
(19)個性化的 HTTP Session支持:HTTP Session處理, 包括 fallback 系統管理,在 PHP 4.0被它的新庫函數實現 。在版本 3.0 中處理Session要求使用 PHPLIB 和第三方的庫函數, 它比把Session直接地由 PHP 支持慢了許多。
(20)個性化的 Java 支持:PHP 4.0 支持和java的交互。這種個性化的Java 支持爲PHP 在 Java 對象上建立和使用方法提供一個簡單而且有效的工具。
21)對象和數嵌套組:PHP 4.0 實現了功能更增強大的對象, 移去了 PHP 3.0存在的種種句法限制。對象能在數組之內被嵌套而且反過來也如此, 能夠根據你的須要實現嵌套。
(22)面向對象的編程:PHP 4.0 爲面向對象的編程和構造類及對象提供擴展的功能和新特徵。PHP4實現了對象重載,引用技術等新技術。
(23)對象重載支持:對象重載語法容許第三方的基於面向對象的類庫使用 PHP4 的面向對象的特徵存取他們自身的功能。使用這個特徵的一個 COM 模塊已經被實現了。
(24)輸出緩衝支持:PHP 提供了一個輸出緩衝函數集合。輸出緩衝支持容許你寫包裹函數功能壓縮緩衝區。在 PHP4 的輸出緩衝支持容許 HTML 頭信息存放, 不管 HTML的正文是否輸出。頭信息( (header(), content type, and cookies ) 不採用緩衝 。
(25)增長了PCRE 庫:PHP 4.0 包括一個 Perl 兼容的正則表達式 (PCRE ) 庫, 和正常regex庫一塊兒與 PHP 綁定。split 和replace PCRE 功能被支持。PCRE 和 Perl 正規表達式之間有一些細微差異。
(26)PHP.ini 文件:PHP.ini文件在 PHP4.0 被從新設計, 使用的 PHP 的配置PHP.ini是更容易而且更有效的。所有文件能被Apache 在運行時間操做 ( 在 Apache環境 下 ) 或由 Windows 註冊表 ( 在 Windows 下面 ) 。被加入PHP.ini文件的配置指令自動地在全部相關的模塊中被支持。
(27)引用計數:PHP 4.0 爲系統中的每一個數值提供了引用計數, 包括資源。一旦一個資源再也不被任何變量引用,它自動地被釋放以節省內存資源。利用這個特徵的最明顯的例子一個內置SQL查詢的循環語句。在PHP 3.0中 ,每次遞歸另外的 SQL 結果集合重複申請內存,直到腳本執行完畢,這些結果集合佔用的內存才被釋放。
(28)支持引用:經過引用能夠改變一個變量的值。
(29)函數的運行時綁定:PHP 4.0 的運行時間綁定功能容許你在他們被聲明之前調用, 不管聲明是否在代碼之後或是在運行時間。
(30)類的運行時信息:PHP 4.0 支持在運行時刻存取下列類信息:一個對象的類名,一個對象的父類的類名字,以及對象函數所在的名字。
(31)服務器抽象層:爲支持Web服務器提供了加強型 SAPI ( 服務器 API ) 接口,是 PHP 4。0 不可分的一部分。這個服務器抽象層,提供了通用的WEB服務器接口支持,支持多線程WEB服務器,爲大多數的WEB服務器提供透明的支持, 這些服務器包括 Apache ,IIS ( ISAPI ), 以及 AOL 服務器。
全部的PHP源代碼事實上均可以獲得。
和其它技術相比,PHP自己免費且是開源代碼。
程序開發快,運行快,技術自己學習快。嵌入於HTML:由於PHP能夠被嵌入於HTML語言,它相對於其餘語言。編輯簡單,實用性強,更適合初學者。
因爲PHP是運行在服務器端的腳本,能夠運行在UNIX、LINUX、WINDOWS、Mac OS下。
用PHP動態建立圖像
PHP支持腳本語言爲主,同爲類C語言。