PHP 能做什么?

PHP 能做任何事。PHP 主要是用于服務(wù)端的腳本程序,因此可以用 PHP 來完成任何其它的 CGI 程序能夠完成的工作,例如收集表單數(shù)據(jù),生成動(dòng)態(tài)網(wǎng)頁,或者發(fā)送/接收 Cookies。但 PHP 的功能遠(yuǎn)不局限于此。

PHP 腳本主要用于以下三個(gè)領(lǐng)域:

  • 服務(wù)端腳本。這是 PHP 最傳統(tǒng),也是最主要的目標(biāo)領(lǐng)域。開展這項(xiàng)工作需要具備以下三點(diǎn):PHP 解析器(CGI 或者服務(wù)器模塊)、web 服務(wù)器和 web 瀏覽器。需要在運(yùn)行 web 服務(wù)器時(shí),安裝并配置 PHP,然后,可以用 web 瀏覽器來訪問 PHP 程序的輸出,即瀏覽服務(wù)端的 PHP 頁面。如果只是實(shí)驗(yàn) PHP 編程,所有的這些都可以運(yùn)行在自己家里的電腦中。請查閱安裝一章以獲取更多信息。
  • 命令行腳本??梢跃帉懸欢?PHP 腳本,并且不需要任何服務(wù)器或者瀏覽器來運(yùn)行它。通過這種方式,僅僅只需要 PHP 解析器來執(zhí)行。這種用法對于依賴 cron(Unix 或者 Linux 環(huán)境)或者 Task Scheduler(Windows 環(huán)境)的日常運(yùn)行的腳本來說是理想的選擇。這些腳本也可以用來處理簡單的文本。請參閱 PHP 的命令行模式以獲取更多信息。
  • 編寫桌面應(yīng)用程序。對于有著圖形界面的桌面應(yīng)用程序來說,PHP 或許不是一種最好的語言,但是如果用戶非常精通 PHP,并且希望在客戶端應(yīng)用程序中使用 PHP 的一些高級特性,可以利用 PHP-GTK 來編寫這些程序。用這種方法,還可以編寫跨平臺(tái)的應(yīng)用程序。PHP-GTK 是 PHP 的一個(gè)擴(kuò)展,在通常發(fā)布的 PHP 包中并不包含它。如果對 PHP-GTK 感興趣,請?jiān)L問其? 網(wǎng)站以獲取更多信息。

PHP 能夠在所有的主流操作系統(tǒng)上使用,包括 Linux、Unix 的各種變種(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、macOS、RISC OS 等。今天,PHP已經(jīng)支持了大多數(shù)的 web 服務(wù)器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。對于大多數(shù)的服務(wù)器,PHP 提供了一個(gè)模塊;還有一些 PHP 支持 CGI 標(biāo)準(zhǔn),使得 PHP 能夠作為 CGI 處理器來工作。

綜上所述,使用 PHP,可以自由地選擇操作系統(tǒng)和 web 服務(wù)器。同時(shí),還可以在開發(fā)時(shí)選擇使用面對過程和面對對象,或者兩者混和的方式來開發(fā)。盡管 PHP 4 不支持 OOP 所有的標(biāo)準(zhǔn),但很多代碼倉庫和大型的應(yīng)用程序(包括 PEAR 庫)僅使用 OOP 代碼來開發(fā)。PHP 5 彌補(bǔ)了 PHP 4 的這一弱點(diǎn),引入了完全的對象模型。

使用 PHP,并不局限于輸出 HTML。PHP 還能被用來動(dòng)態(tài)輸出圖像、PDF 文件甚至 Flash 動(dòng)畫(使用 libswf 和 Ming)。還能夠非常簡便的輸出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能夠自動(dòng)生成這些文件,在服務(wù)端開辟出一塊動(dòng)態(tài)內(nèi)容的緩存,可以直接把它們打印出來,或者將它們存儲(chǔ)到文件系統(tǒng)中。

PHP 最強(qiáng)大最顯著的特性之一,是它支持很大范圍的數(shù)據(jù)庫。使用任何針對某數(shù)據(jù)庫的擴(kuò)展(例如 mysql)編寫數(shù)據(jù)庫支持的網(wǎng)頁非常簡單,或者使用抽象層如 PDO,或者通過 ODBC 擴(kuò)展連接到任何支持 ODBC 標(biāo)準(zhǔn)的數(shù)據(jù)庫。其它一些數(shù)據(jù)庫也可能會(huì)用 cURL 或者 sockets,例如 CouchDB。

PHP 還支持利用諸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 環(huán)境)等不計(jì)其數(shù)的協(xié)議的服務(wù)。還可以開放原始網(wǎng)絡(luò)端口,使得任何其它的協(xié)議能夠協(xié)同工作。PHP 支持和所有 web 開發(fā)語言之間的 WDDX 復(fù)雜數(shù)據(jù)交換。關(guān)于相互連接,PHP 已經(jīng)支持了對 Java 對象的即時(shí)連接,并且可以透明地將其用作 PHP 對象。

PHP 具有極其有效的文本處理特性,包括 Perl 兼容正則表達(dá)式(PCRE)以及許多擴(kuò)展和工具可用于解析和訪問 XML 文檔。PHP 將所有的 XML 功能標(biāo)準(zhǔn)化于堅(jiān)實(shí)的 libxml2 擴(kuò)展,并且還增加了 SimpleXML,XMLReader 以及 XMLWriter 支持以擴(kuò)充其功能。

另外,還有很多其它有趣的擴(kuò)展庫,在此根據(jù)字母分類歸類列出。還有一些附加的 PECL 擴(kuò)展可能有也可能沒有在 PHP 手冊中列出,例如 ? XDebug。

由于在這里無法列出 PHP 所有的特性和可提供的便利,請參閱安裝以及函數(shù)參考有關(guān)章節(jié)以獲取關(guān)于這里提到的擴(kuò)展庫更多的信息。