PHP(“PHP: Hypertext Preprocessor”,超文本預處理器的字母縮寫)是一種被廣泛應用的開放源代碼的多用途腳本語言,它可嵌入到 HTML中,尤其適合 web 開發。
以上是一個簡單的回答,不過這是什么意思呢?請看如下例子:
Example #1 一個介紹性的范例
請注意這個范例和其它用 C 或 Perl 語言寫的腳本之間的區別——與用大量的命令來編寫程序以輸出 HTML 不同的是,PHP 頁面就是 HTML,只不過在其中嵌入了一些代碼來做一些事情(在本例中輸出了 "Hi, I'm a PHP script!")。PHP 代碼被包含在特殊的起始符和結束符 <?php 和 ?> 中,使得可以進出“PHP 模式”。
和客戶端的 JavaScript 不同的是,PHP 代碼是運行在服務端的。如果在服務器上建立了如上例類似的代碼,則在運行該腳本后,客戶端就能接收到其結果,但他們無法得知其背后的代碼是如何運作的。甚至可以將 web 服務器設置成讓 PHP 來處理所有的 HTML 文件,這么一來,用戶就無法得知服務端到底做了什么。
使用 PHP 的一大好處是它對于初學者來說極其簡單,同時也給專業的程序員提供了各種高級的特性。當看到 PHP 長長的特性列表時,請不要害怕。可以很快的入門,只需幾個小時就可以自己寫一些簡單的腳本。
盡管 PHP 的開發是以服務端腳本為目的,但事實上其功能遠不局限與此。
PHP 能做任何事。PHP 主要是用于服務端的腳本程序,因此可以用 PHP 來完成任何其它的 CGI 程序能夠完成的工作,例如收集表單數據,生成動態網頁,或者發送/接收 Cookies。但 PHP 的功能遠不局限于此。
PHP 腳本主要用于以下三個領域:
PHP 能夠在所有的主流操作系統上使用,包括 Linux、Unix 的各種變種(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已經支持了大多數的 web 服務器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。對于大多數的服務器,PHP 提供了一個模塊;還有一些 PHP 支持 CGI 標準,使得 PHP 能夠作為 CGI 處理器來工作。
綜上所述,使用 PHP,可以自由地選擇操作系統和 web 服務器。同時,還可以在開發時選擇使用面對過程和面對對象,或者兩者混和的方式來開發。盡管 PHP 4 不支持 OOP 所有的標準,但很多代碼倉庫和大型的應用程序(包括 PEAR 庫)僅使用 OOP 代碼來開發。PHP 5 彌補了 PHP 4 的這一弱點,引入了完全的對象模型。
使用 PHP,并不局限于輸出 HTML。PHP 還能被用來動態輸出圖像、PDF 文件甚至 Flash 動畫(使用 libswf 和 Ming)。還能夠非常簡便的輸出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能夠自動生成這些文件,在服務端開辟出一塊動態內容的緩存,可以直接把它們打印出來,或者將它們存儲到文件系統中。
PHP 最強大最顯著的特性之一,是它支持很大范圍的數據庫。使用任何針對某數據庫的擴展(例如 mysql)編寫數據庫支持的網頁非常簡單,或者使用抽象層如 PDO,或者通過 ODBC 擴展連接到任何支持 ODBC 標準的數據庫。其它一些數據庫也可能會用 cURL 或者 sockets,例如 CouchDB。
PHP 還支持利用諸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 環境)等不計其數的協議的服務。還可以開放原始網絡端口,使得任何其它的協議能夠協同工作。PHP 支持和所有 web 開發語言之間的 WDDX 復雜數據交換。關于相互連接,PHP 已經支持了對 Java 對象的即時連接,并且可以透明地將其用作 PHP 對象。
PHP 具有極其有效的文本處理特性,包括 Perl 兼容正則表達式(PCRE)以及許多擴展和工具可用于解析和訪問 XML 文檔。PHP 將所有的 XML 功能標準化于堅實的 libxml2 擴展,并且還增加了 SimpleXML,XMLReader 以及 XMLWriter 支持以擴充其功能。
另外,還有很多其它有趣的擴展庫,在此根據字母和分類歸類列出。還有一些附加的 PECL 擴展可能有也可能沒有在 PHP 手冊中列出,例如 ? XDebug。
由于在這里無法列出 PHP 所有的特性和可提供的便利,請參閱安裝以及函數參考有關章節以獲取關于這里提到的擴展庫更多的信息。


