PHP 是一種被廣泛應用的開源通用計算機指令碼語言,尤其適用於 Web 開發。PHP 的語法借鑑吸收 C 語言、Java 和 Perl 等流行計算機語言的特點,易於一般程式設計師學習。
該語言的主要目標是允許 Web 開發人員快速編寫動態生成的 Web 頁面,但 PHP 的用途遠不止於此。
名字背後的故事
PHP 原本的簡稱為 Personal Home Page,是拉斯姆斯·勒多夫為了維護個人網頁,而用 C 語言開發的一些 CGI 程式集。後來改名為 PHP: Hypertext Preprocessor,即超文字前處理器。
PHP 能做什麼
PHP 能做任何事。PHP 主要是用於服務端的指令碼程式,因此可以用 PHP 來完成任何其它的 CGI 程式能夠完成的工作,例如收集表單資料,生成動態網頁,或者傳送/接收 Cookies。但 PHP 的功能遠不侷限於此。
PHP 指令碼主要用於以下三個領域:
- 服務端指令碼。這是 PHP 最傳統,也是最主要的目標領域。開展這項工作需要具備以下三點:PHP 解析器(CGI 或者伺服器模組)、Web 伺服器和 Web 瀏覽器。
- 命令列指令碼。可以編寫一段 PHP 指令碼,並且不需要任何伺服器或者瀏覽器來執行它。通過這種方式,僅僅只需要 PHP 解析器來執行。
- 編寫桌面應用程式。對於有著圖形介面的桌面應用程式來說,PHP 或許不是一種最好的語言,但是如果使用者非常精通 PHP,並且希望在客戶端應用程式中使用 PHP 的一些高階特性,可以利用 PHP-GTK 來編寫這些程式。用這種方法,還可以編寫跨平臺的應用程式。
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,並不侷限於輸出 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 支援以擴充其功能。
另外,還有很多其它有趣的擴充套件庫。