PHP 能做什么?

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

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

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

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

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

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

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

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

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

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