PHP能做甚麼?
甚麼都行。PHP 的賣點就是伺服端命令稿,因此任何 CGI 程式能做到的,PHP 都可以做。例如收集表單上的資料、動態產生頁面內容,或是接收 Cookie 等等族繁不及備載。以下是 PHP 的三個定位取向:
- 伺服端命令稿:這是 PHP 最主要的設計目標。語法分析引擎(CGI 或伺服端模組)、網站伺服器、網頁瀏覽器是其能否運作的三個要素。啟動已結合 PHP 的網站伺服器,您就可以利用瀏覽器執行 PHP 程式,並獲得伺服端的處理結果。若您打算在自己的電腦體驗一下 PHP 程式設計,那麼可以參閱「安裝與組態設定」這個章節。
- 命令列指令稿:您也可以不用任何瀏覽器與伺服器,僅利用語法解析引擎執行 PHP 程式。這樣的概念,就是從 Unix-like 的 Cron 和 Windows 裡的工作排程來的。這一類的程式,也常用在簡單的文字處理工作,若需要了解更多細節,請另行參閱「在命令列使用PHP」。
- 桌面應用程式:對於撰寫桌面應用程式,設計圖形使用者介面來說,PHP 這個程式語言並非最佳的選擇。不過若您非常了解 PHP,也偏好在用戶端的應用程式裡,結合它的進階功能,甚或您有能力撰寫跨平台應用程式,那麼您就可以用 PHP-GTK。PHP-GTK 是 PHP 的延伸開發架構,若您對此主題有興趣,請另行至他們的網站查閱相關資訊。
PHP 支援所有常見的作業系統,像是 Unix-like、Windows、MacOS X、RISC OS 等等。當然也支援許多網站伺服器,例如 IIS、PWS、Netscape、iPlanet、Oreilly Websiite Pro、Caudium、Xitami、OmniHTTPd 等等。大部分的伺服器,PHP 都有模組可以支援,至於其他種類的伺服器,則是以 CGI 的標準來支援(PHP 也能以 CGI 處理器的模式運作)。
因此,對於 PHP 與作業系統、網站伺服器的搭配選用,是很有自主性的。此外,無論是程序導向、物件導向,亦或二者混合的程式開發方式,您都可以選用。儘管 PHP 4 裡實作的,並非標準的物件導向程式設計功能,但有許多程式庫與大型應用程式(包括 PEAR 在內),都是用物件導向程式設計的原則來撰寫程式碼。PHP 5 也修正了 PHP 4 的 OOP 相關缺陷,而且也導入了完整的物件模型。
PHP 最強大、最具代表性的特色,就是它支援非常多種資料庫,所以若要做一個可存取資料庫的網頁,是非常容易的事。以下所列舉的就是 PHP 目前所支援的資料庫:
- Adabas D
- dBase
- Empress
- FilePro (唯讀)
- Hyperwave
- IBM DB2
- Informix
- Ingres
- InterBase
- FrontBase
- mSQL
- Direct MS-SQL
- MySQL
- ODBC
- Oracle (i7 及 i8)
- Ovrimos
- PostgreSQL
- SQLite
- Solid
- Sybase
- Velocis
- Unix dbm
我們也有抽象資料庫延伸套件(PDO),您可以透過這個套件存取任何資料庫。另外,PHP 也支援 ODBC(Open Database Connectivity Standard),因此您也可以存取其他支援此標準的資料庫。
PHP 也支援其他協定所提供的服務,例如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM 等等,當然您也可以利用其他協定,打開網路接口並與之互動。PHP 也能夠讓您在任何網頁程式語言之間,透過 WDDX 進行資料交換。甚至也支援了連結其他開發框架的機制,例如您可以直接把 Java 物件實體化為自身的物件來使用,或是利用我們的 CORBA 延伸函式庫來存取遠端物件。
同時,PHP 亦擁有極佳的文字處理功能:透過 POSIX 延伸函式庫或 Perl 的規則表達式解析 XML 檔案。在 PHP 4 的版本中,係以 SAX、DOM 的標準,來支援 XML 檔案的解析與存取,而且您亦可使用 XSLT 延伸函式庫來轉換 XML 檔案。而 PHP 5,則是已在根基穩固的 libxml2 上,針對所有的 XML 延伸函式庫做了標準化,並擴充了 SimpleXML 與 XMLReader 等功能。
最後要補充,但並不重要的,就是我們還有很多有趣的擴充功能:mnoGoSearch 搜尋引擎、IRC Gateway,還有一些壓縮工具(gzip、bz2、zip)、曆法轉換,以及翻譯等等。
如您所見,本文無法詳盡列出 PHP 的所有功能及優點。請另行參考「安裝與組態設定」,還有「函式參考說明」這兩個章節的說明。
沒有留言:
張貼留言