第一章
PHP基本介紹
本章重點
◆ 認識PHP
◆ PHP的歷史
◆ PHP受歡迎的原因
◆所具備的競爭優勢
◆對PHP做個基本的介紹。本章著重於討論有關PHP最常見的一些問題,例如,什麼是PHP,它與類似的技術相比較性能如何……等等,本章大部份的篇幅都會花在列舉PHP之所以受歡迎的原因上。
認識PHP
PHP是一種Web開發人員所饌寫的Web開發程式語言。
PHP所代表的是「PHP:Hypertext Preprocessor」這個意思。實際上是,它在一開始時原被稱為「Personal Home Page Tools(個人首頁工具)」;但是,當它的使用範圍日漸廣泛後,因而網絡社區中大家推舉出一個更新,更合適的名字(就像GNU這個縮寫字代表的是「GNUᄄ@s Not Unix」)。我們可以為編寫的PHP檔案隨便取檔案的副檔名,但一般建議使用. PhpᄄAphp3和.phtml。目前使用的一般是PHP第四版,可以取副檔名為php4,當然也可以簡短寫成php。PHP是屬於伺服端的嵌入式HTML的scripting語言,可以用來內嵌在HTML裡面或是單獨以二進位檔案執行(即使前者實在經常被使用)。相對應的同性質產品有微軟的ASP、Macromedia的ColdFusion ,以及Sun的Java Server Pages(JSP).由於其功能與微軟的產品,概念等非常相似,所以有時PHP被稱為“the open source ASP” (開放原縐碼版本的ASP),雖然這個公式已經被誤導,因為PHP在ASP之前就存在了,但是在過去幾年裡,PHP以及伺服端的Java越來越受矚目,儘管ASP損失了一些使用率,但是這樣的比較似乎不再適當。
下一章會更深入探討伺服端scripting語言,現在讀者可以把它看作是一種允許將伺服端函數添加到Web中的超級HTML標記。舉例來說,我們可以用PHP組合產生一個複雜的Web網頁,或是在顧客上網購物時用PHP程式觸發一個自動執行的信用卡付款程序。
嚴格來說,PHP與Web版面配置,事件或外觀設計等方面都有太大的關係。實際上,絕大多數PHP的功能對於終端使用者而言是不會有感覺的。當某個使用者觀看一個PHP網頁時,他並沒有必要分辨該頁面是不是用HTML語法寫的,因為PHP的最終結果還是HTML。
Apache HTTP伺服器是市場上佔據主導地位的免費Web伺服器,世界上大約有55%的WWW都是執行它,而PHP就是它的正式模組之一。也就是說,PHP scripting引擎能夠內建在Web伺服器中,因而有更快的資料處理速度。和Apache Server一樣,PHP具有跨平台的功能,也就是說它本來是執行於UNIX環境,但也可以在Windows上執行。所有Apache Software Foundation(http://www.apache.org/)支援的軟體開發項目,包括PHP,都是開放原始碼的軟體。
PHP的歷PHP 繼承自一個老的工程,名叫 PHP/FI。 PHP/FI 在 1995 年由 Rasmus Lerdorf 創建,最初只是一套簡單的 Perl 腳本,用來追蹤訪問他主頁的人們的資訊。它給這套腳本取名為「Personal Home Page Tools」。隨著更多功能需求的增加,Rasmus 寫了一個更大的 C 語言的實現,它可以存取資料庫,可以讓使用者開發簡單的動態 Web 程式。 Rasmus 發布了 PHP/FI 的源代碼,以便每個人都可以使用它,同時大家也可以修正它的 Bug 並且改進它的源代碼。 PHP/FI,一個專為個人主頁/表單提供解釋程序的程序,已經包含了今天 PHP 的一些基本功能。它有著 Perl 樣式的變量,自動解釋表單變量,並且可以嵌入 HTML。文法本身與 Perl 很相似,但它很有限,很簡單,還稍微有些不協調。 到1997年,PHP/FI 2.0,也就是它的 C 語言實現的第二版在全世界已經有幾千個用戶(估計)和大約 50,000 個域名安裝,大約是 Internet 所有域名的 1%。但是那時只有幾個人在為該工程撰寫少量當代碼,它仍然只是一個人的工程。 PHP/FI 2.0 在經歷了數個 beta 版本的發布後於 1997 年 11 月發布了官方正式版本。不久,PHP 3.0 的第一個 alpha 版本的發布,PHP 從此走向了成功。 🎜🎜PHP 3🎜🎜PHP 3.0 是類似於當今 PHP 語法結構的第一個版本。 Andi Gutmans 和 Zeev Suraski 在為一所大學的專案中開發電子商務程式時發現 PHP/FI 2.0 功能明顯不足,於是他們重寫了程式碼。這就是 PHP 3.0。經過Andi,Rasmus 和 Zeev 一系列的努力,考慮到 PHP/FI 已存在的用戶群,他們決定聯合發布 PHP 3.0 作為 PHP/FI 2.0 的官方後繼版本。而 PHP/FI 2.0 的進一步開發幾乎終止了。 🎜PHP 3.0 的一個最強大的功能是它的可擴展性。除了給最終用戶提供資料庫、協定和 API 的基礎結構,它的可擴展性還吸引了大量的開發人員加入並提交新的模組。後來證實,這是 PHP 3.0 取得巨大成功的關鍵。 PHP 3.0 中的其它關鍵功能包括物件導向的支援和更強大和協調的語法結構。
這個全新的語言伴隨著一個新的名稱發布。它從 PHP/FI 2.0 的名稱中移去了隱含「本語言只限於個人使用」的部分。它被命名為簡單的縮寫“PHP”。這是一種遞歸的縮寫,它的全名為-PHP: Hypertext Preprocessor。
1998 年末,PHP 的安裝人數幾乎是 10,000,有大約 100,000 個網站報告他們使用了 PHP。在 PHP 3.0 的頂峰,Internet 上 10% 的 Web 伺服器上都安裝了它。
約九個月的公開測試後,官方於1998年6月正式發布 PHP 3.0。
PHP 4
1998 年的冬天,PHP 3.0 官方發布不久,Andi Gutmans 和 Zeev Suraski 開始重新編寫 PHP 程式碼。設計目標是增強複雜程式運行時的效能和 PHP 自身程式碼的模組性。 PHP 3.0 的新功能和廣泛的第三方資料庫、API的支援使得這樣程式的編寫成為可能,但是 PHP 3.0 沒有高效處理如此複雜程式的能力。
新的被稱為「Zend Engine」(這是 Zeev 和 Andi 的縮寫)的引擎,成功的實現了設計目標,並在 1999 年中期首次引入 PHP。基於該引擎並結合了更多新功能的 PHP 4.0,在 PHP 3.0 發布兩年後,於2000年5月發布了官方正式版本。除了更高的效能以外,PHP 4.0 還包含了其它一些關鍵功能,例如:支援更多的Web 伺服器;HTTP Sessions 支援;輸出快取(output buffering);更安全的處理使用者輸入的方法;一些新的語言結構。
PHP 4 是目前 PHP 的最新版本。修改和增強 Zend Engine 以使 PHP 5.0 整合新功能的工作已經開始。
今天,已經有 10,000 名開發人員(估計)和數百萬網站報告已安裝了 PHP,佔整個 Internet 網域的 20%。
PHP 的開發小組有很多優秀的開發人員,同時還有大量的優秀人才在進行 PHP 相關工程的開發工作,如 PEAR 和 PHP 文件的工程。
PHP 5
PHP 的未來主要受其核心,Zend Engine 控制。 PHP 5 將包含新一代的 Zend Engine 2.0。請訪問其網站以獲取更多關於該引擎的資訊。
史
PHP受歡迎的理由
PHP之所以受歡迎的理由非常多,這裡介紹幾個主要原因。
PHP是免費的
就PHP本身可不花你一毛錢。把Apache/PHP/MySQL結合在一起而能執行於廉價的低階硬體上這件事,是你決定採用IIS/ASP/SQL Server時想都不用想的。
為了進行比較,表1-1列出一些在美國同類產品大致的零售價格,所有的價格都是以單一對外Web伺服器並且比照最適用的資料庫與開發工具而論,$0表示為一個不需成本且實際上常被使用的選擇,在現行的使用上,Microsoft並未上市,NET伺服器套件下一代的Web伺服器,但是我們可以保守推論價格會上升而非下跌。
表格1-1 零售價格比較 (美金)
開放原始碼軟體: 便宜亦好貨
很顯然地,我們是生活在一個物質世界中,我們經常碰到類似「一分錢一分貨」、「天下沒有白吃的午餐」和「完美的東西只存在於傳說之中」的格言。因此,大家難免會對免費軟體的品質和生存產生懷疑。直到最近,那些不用花錢的軟體(正式名稱是共享軟體或自由軟體)一般仍然被歸入下列三類:
小型的和非商業軟體
完成一般性低階工作的軟體
為那些有著各種社會政治「問題」使用者所寫的軟體
現在應該徹底改變這些陳腐的觀念。毫無疑問,我們正置身於一個商業軟體不斷變化的世界。現在,許多重要使用者軟體都是免費發送的:e-mail 用戶端軟體、網頁瀏覽器、遊戲,甚至服務齊全的辦公室套件軟體,只要它們的製作者一建立Web版本或設定好FTP伺服器,就會立即以最快的速度發布。用戶軟體的意義正在逐漸轉移,就像哪朵花甜就能吸引蜜蜂授粉,換句話說,它被當成一種方法,幫助賣出更多伺服器硬體和作業系統,提高結合性,成為廣告管道,銷售一些操作上的工具組件或銷售股權。因此,軟體的零售價格已不再是用來評估軟體口質或其使用者層面的可靠尺度。
在伺服端,開放原始碼的產品變得更加強健;它們不但可以同最優秀的商業軟體比美,而且在很多方面人們會感覺它們已經超過了商業軟體。不要認為這只是我們的觀點,儘管去諮詢IBM公司,所有的硬體廠商,美國太空總署NASA,法國電訊公司FTE,西門子公司、Kinkoᄄ@s公司,英國女王,墨西哥教育體系機構。如還對此有所懷疑,可以從下述站了解更多的相關內容:
http://www.opensource.org
http://www.fsf.org
PHP的授權
免費的開放原碼和免費軟體由一系列的授權架構來提供保證,其中最著名的是GPL(GNU General Public License)或(copyleft)這兩個。 PHP過去常常是同時在GPL和它自己的授權下散佈公開的,允許每位使用者自己從中自由選擇一個。然而這種情況有所改變了:該程序現在已經視為一個整體在它自己定義的極端自由放任主義的PHP4授權下公開散佈:而Zend則是當作一個單獨產品在Q Public License(是在將Zend從PHP分出來定價並銷售時)下公開散佈。
在以下的Web網站中可以找到有關授權的詳細說明:
http://www.php.net/license.html
http://www.troll.no/qpl/annotaed.html
絕大多數人是透過免費下載得PHP,但也可以把它當作一份Linux distribution的產品,一本技術著作或其它一些產品的一部分來購買。要後面這種情況下,有人可能會對PHP免費的說法產生懷疑。這可經由兩方面來看,儘管不能要求對大多數開放原始碼軟體付費,卻需要為該軟體的寄送付費,哪怕是以最便宜的方式,例如將它存在磁碟中並(郵寄或用其它工具)傳送給其它使用者。另外,有些工作或風險是由市場來完成和承擔的,而這些工作又是開發小組不去做或承擔的,這時使用者也需要付費。例如,為了確保收到的軟體的每一個拷貝都是沒有病毒或具有一定的質量,或是為了不冒險去使用帶有病毒的CD-ROM,就需要支付一定的費用。
一般來說,對於不同的情況,開放原始碼的軟體使用者能夠自由選擇:最佳的效益/價格比,不付費和沒有保障。或在用高昂的價格但是傭有良好的技術支持,或者是介於兩者之間等等。然後,目前還沒有出現為PHP銷售提供服務和技術支援的組織(儘管有人推測這將成為Zend組織會更有價值的賣點之一)。
其它的開放原始碼的產品,如Linux,就是類似RedHat這樣的公司來回答使用者的問題:這方面的商業運作對於PHP才剛剛萌芽。
PHP上手容易
相對於同一功能的其它操作方式來說,PHP非常容易學習。與Java Server Pages或基於C語言的不CGI不同,PHP不會要求使用者只因為在進行一個小小的資料庫存取呼叫動作,而要先學會一整門程式語言的學問。 Perl常被人們半開玩笑地稱為「唯寫語言(Write-oniy language)」,與它不同的是PHP的語法很容易理解,人機界機非常友善。而不像ASP.NET, PHP已經很穩定而且可以解決你現今的問題。
另外,PHP也為使用者預先定義了許多非常有用的函數(例如開啟Oracle資料庫的連接,或是從IMAP伺服器中取電子郵件的函數)。在學習PHP時還可以看到許多完整現成的範示script。實際上,要使用PHP時,完全可以透過修改這些已有的script程序,而不用把時間浪費在寫程式時所碰到的一些小小的語法錯誤上。
為了怕讀者有所誤解,必須說明:「容易」對不同的人及其不同的情況可能會有不同的解釋,舉命例來說,對於很多Web開發者而言,「容易」好像就意味著是圖形接口,滑鼠的拖放操作和所見即所得的環境。要成為真正熟練的PHP使者,首先需要能夠輕鬆自如地編輯HTML。我們可以先使用所見即所得的網頁編輯工具來設計網站,美化頁面及插入客戶端的功能,之後再把PHP功能加入到頁面的原始碼中即可。利用某些方法甚至可以有詳細的介紹。無論如何,如果你不想碰程式碼部份,就想要充分掌握使用PHP的各項功能,這是不太可能的哦。
絕大多數PHP的進階使用者(包括大多數的開發小組成員)是手工編寫程式碼的死忠份子,他們對程式設計工作有某種堅持,例如,他們認為手寫程式碼非常美妙和整潔,而且具有與瀏覽器兼容最大兼容性,因此,手寫程式碼是唯一可走的路,對此兇手往往不吝用激烈的言辭來表達。 PHP的一些社群組都是透過電子郵件來提供協助,或是進行一些小型的技術交易。如果你想要加入這些社群,必須能夠具備快速解析純文字原程式碼的難度。一些所見即所得式編輯器使用者有時會請求這些PHP社群的成員透過觀看他們的網頁來協助診斷錯誤,但很少人可以得到好評價。
上面我們說了一大堆PHP很簡單的理由,其實它只是比HTML稍微復難一點,但又要比JavaScript或ASP簡單一點,此外絕對沒有JSP或ASP.NET複製就是了。
PHP為嵌式(embedded)
PHP是內嵌在HTML中的。換句話說,PHP的頁面只是必要時「跳到」PHP模式的普通HTML的頁面。以下列舉一個例子說明:
範例1-1 greeting.php
當某個客戶端對該頁提出請求時,Web伺服器就會對它進行處理。也就是說,它會在該頁面中從上而下尋找試圖解決的PHP部分。首先,剖析器將處理所有的已指定值的變數(用$來標示),並試著將它們插入後面的PHP 指令(在上述情況就是print()函式)。如果每一步都進行得很順利,剖析器最終將把一個HTML頁面傳回到客戶端的瀏覽器上,
如圖1-1所示
如果從客戶端瀏覽器上查看原始程式碼[從View(檢視)選單上選擇Source(檢視原始碼)或PageSource(網頁原始碼)],就會看見下列程式碼:
這與你所寫的HTML完全相同,是不是很簡單呢?
PHP的HTML內嵌特性可以提供許多幫助:
◆ PHP可快速地插入到所見即所得式編輯工具所產生
◆ 的程式碼中。
◆ PHP將設計師和script編寫者的工作分開。
◆ HTML的任何一行都不必用程式語言重寫。
◆ PHP能夠減少勞成本,提高效率。
無須編輯
或許所有的內嵌script語言最令人動心的就是「寫下來並執行即可」,在被測試或使用以前不需要先編輯譯成二進制代碼。 PHP是直譯的語言(就像是目前絕大多數新式的電腦程式語言)。儘管Zend做了一些幕後工作,預先編譯成一種中間格式,以便提高複雜script的執行速度。
如果碰到想要編譯時又該怎麼辦呢?如果想要發布的是不可反組譯的二進位代碼,以便其它人雖然能夠使用這些程式碼,但是不能看到原始程式的內容。在這種情況下,編譯就顯得很有必要了。 Zend小組正在開發一個優化的編譯器Zend Encoder ,將使PHP的「編譯」變成可能,同時這也將促進複雜的大型PHP script的使用和發展。
PHP具有跨平台特性
PHP可執行於任何一種最受歡迎的UNIX(包含Mac OS X )或Windows版本的作業系統上。目前世界上絕大部分的HTTP伺服器都是架在上述兩種作業系統之上。
PHP與目前處於領先地位的三種Web伺服器是相容的:UNIX(包含Mac OSX)或Windows的Apache HTTP伺服器,微軟的IIS和Netscape Enterprise伺服器(又稱iPlanet伺服器)。它也可用於幾種鮮花人知的伺服器上,其中包括Alex Belits的fhttpd,微軟的Personal Web Server(PWS),AOLServer以及Omnicentrix的Omniserver應用伺服器。不過Macintosh平台並不支丟PHP。表1-2顯示的是作業系統與Web伺服器組合的簡單表格。
表1-2 作業系統與支援PHP的Web伺服器
現在PHP可以在Macintosh上執行,所以PHP幾乎可以跨全部的平台,你可以在任何單獨OS端使用你喜歡的工具開發,然後將這些PHP script上載到UNIX或Windows伺服器中。第三章將詳述這部分處理地程。
PHP並不是標示語言
PHP是一種真正的程式語言。相較而言,ColdFusion就比較像HTML一樣是用預先定義的Tag來標示。在PHP中,只要鍵入名稱和定義就可以依照自己的需求定義函數。在CouldFusion中,必須使用其它人開發的標記,或進行自訂擴充標記的開發過程。
一個PHP社群成員曾經說過:「CouldFusion讓容易的事情變得容易,但讓中等難度的事情變成不可能實現」。每個程式設計師都會認同,一旦有能力用大括號和圓圈,就絕對不會再回頭使用標記。
PHP的穩定性(stabie)
在這裡提到的[穩定性]有兩種不同的意義:
1. 伺服器並不需要經常重新啟動。
2. 軟體不用經常升級更動,發行版本之間不會不相容。
令人高興的是,這兩點都適用於PHP。 Apache Server一般公認中最穩定的主流Web伺服器,擁有令人稱羨慕的正常執行時間比率,雖然它不是最快的,對於管理員來說也不是最簡單的,不過一旦安裝及設定好它,Apache HTTP Server就絕少持掉。每次改變設定時,也不需要重新啟動伺服器(至少在UNIX這一方面是如此)。 PHP繼承了這種可靠性,再加上它自己的穩固和輕便,在1999年十月的Network Computing實驗室中進行為期兩個半月的實機測試中,Apache Server和PHP在環境穩定性方面輕鬆戰勝IIS/Visual Studio組合和Netscape Enterprise Server/Java組合。
在功能特性穩定度方面,PHP也是很好的。開發專隊對自己的專案很有自信,也有一個清楚的目標,因此會拒絕來自某些使用者的不當索取。他們的大部份努力都讓產品水準提升,諸如讓剖析器執行得更快速,可以和更多的主流資料庫進行資料交換,或是能夠添加更好的Session支援。從過去經驗來看,PHP的各版本之間很少有功能被剔除。
PHP非常快速
PHP在執行上十分快速,尤其是在UNIX平台上編譯到Apache模組的情況下執行。
與CGI script相比,PHP4幾乎在任何使用方面都更快得多。有個笑話說,CGI是[Can′t Go Instantly(不能馬上執行)]的縮寫。儘管許多CGI script是以C語言編寫的,這是最低階段的語言之一,因此比大多數程式設計語言的速度快得多,但每個從HTTP伺服器切斷的請求都需要開始一個全新的處理程序,這個問題阻礙了CGI的應用。這種切斷和產生所需的時間的資源相當多,限制了可執行的平行處理數量。其它CGI script語言,諸如Perl和Tcl,都相當緩慢。大多數Web網站出於效能和安全性的原因,都逐漸不再使用CGI了。
由於它是直譯式執行,而不是經過編譯的,因而性能上稍微受到一些影響,但視為Web伺服器模組之一的PHP還是比較利多於弊,這樣做還是值得的。以這種方式編譯時,PHP成為HTTP伺服器的一部分。因為沒有與單獨應用程式伺服器的來回傳送(例如使用ColdFusion時的情況),因此還是能夠最大限度地滿足請求。
儘管沒有正式的測試基準來對這兩面進行比較,但有許多跡像以及小型的基準測試中言明了,PHP在大多數應用程式中至少和ASP一樣快(例如,請連上Zend.com網站實際感受一下)。
PHP是開放的
我們已經討論過開放原始碼軟體的成本上的優勢。這些授權的另一個主要結論是軟體的完整原始碼必須包含在任何發行的版本中。
實際上,PHP的 UNIX版本只以原始程式碼方式在發行,直到目前,開發團隊拒絕了無數懇求,堅決不為任何UNIX平台發布官方版的二進位版本。起初,初學使用者(尤其是對於UNIX也是新手的使用者)可能會感覺原始程式碼就像用第三條腿般[那麼好用],且大多數人仍期盼選用便捷的rpm方式。不過從實質和理想上的理由,採用含括滿是[.c]和[.h]檔案的檔案夾 都是不可免的。
最直接的實質好處是,我們可以針對真正需要的內容來編譯PHP使用,這種方法在速度的安全性方面都有優勢。例如,可以選擇掛上不同的資料庫的接口,或在Apache更加安全或更新的版本問市時,根據需要在任何時候重新編譯,另外還可以確定了自己需要XML支持時再將該功能編譯進去。
將開放原始碼軟體與它的競爭者有所區隔的不只是價格,還包括了控制權,許多軟體都是設定在某些條件下才會放棄其控制權,但是仔細看看有關的授權說明,一般都會
看到關於如何使用軟體的[限制]。可能允許在家中執行它,但不能在辦公室使用;可能允許在筆記本電腦上加載它,但假如用於商業目的則違反了規定。或者,最常見的情況是,可以將它用於任何目的,但使用者根本別想看到原始程式碼,更別提修改它了。甚至還有社群援權的規範,強制要求使用者為連結庫貢獻一份力量,但卻還是要使用者為最終產品的使用而付費!
注意:
不要去想怎麼違反軟體援權,尤其是對這些無需付費的軟體,並沒什麼好理由需要違反這項規則。此外,對於軟體的開發人員,這種報答也太不公平了。
表1-3原始碼/收費範圍
img src=/upimg/allimg/20060629/0950575.jpg>
類似PHP這樣的開放原始碼的軟體並不打算限制使用目的,用戶範圍或限定提出其它條件。這些權利中最重要的就是允許使用者對原始程式進行修改並發布。在最極端的情況下,這種行為稱作「程式碼分裂(cold forking)」。
這意味著,如果有某些人的開發方向與PHP開發專隊矛盾了,他們可以把多年來幸勤工作得來的所有程式碼用來當成自己產品的基礎;只是不能稱之為PHP ,且必須在自已的檔中提到原來程式碼創作者,讓他們得到應有的讚譽。在大多數情況下,這種另起爐灶的方法可能不是很好主意,但使用者有權利嘗試,由於種種原因,已經有人試過很多次,其基本原則是,原始碼發布的方式使得幾乎不可能由某個人或組織憑藉一個程式來和整個社群對抗,因為每個使用者都可以隨意取走所有原始程式碼來使用。
開放原始碼的新使用者應該要注意到,開發人員也在享受這種權利。任何時候,原創者Rasmus和公司都可以與現在社群不同,並把未來工作成果的目標放在基於PHP的商用產品或競爭爭產品中。當然,對於那些想乍自己舉起指揮棒的人來說,目前的原始程式碼仍是可用的,而且對於像PHP這樣的大型產品,還是有相當多的志願開發人員不斷投入改進。
這樣的結果很容易讓人忽略了開放原始碼軟體的一個優勢,那就是可以相當肯定該軟體在幾年內仍到處可見,不論它是什麼樣子呈現。在如今這些生命週期短得像朝陽一樣的產品中,很難選取一種具有持久性的工具。使用過OS/2、Amiga、Next、Newton、Firefly、Netscape以及其它曾經流行一時的技術的人們,都了解那種被拒絕的痛苦,如公司破產,決定停止對一種技術的支持,或者賣給了另一家公司並有了新方向…等等。在發現PHP之前我們這群人所採用的是另一個伺服端script工具(現在它已經沒有生命力了),雖然目前已經忘記了曾有的感受,但還是有些失落感。開放原始碼模式降低了幾年內突發變故的可能性,讓使用者的長期計畫更可行。
PHP整合能力甚佳
PHP能夠輕易地與其它程序和協議進行交流。 PHP開發團隊願意給予絕大多數使用者最大範圍的彈性。
PHP的資料庫連線能力很強,對目前約十五種最受歡迎的資料庫以及ODBC驅動程式皆有所支援。另外,PHP也支援多數主流的協議,例如POP3、IMAP 和LDAP等。 PHP4也提供Java及分散式物件架構(COM和CORBA)的支持,第一次使得n-tier開發變成可能。
若是有PHP不支持的多數原因大都因為對方應用程式屬於「封閉」原始程式碼的形式。例如, Microsoft不熱衷於和PHP的開放原始碼專案合作。那些在PHP郵寄清單(mailing list)討論區上抱怨缺Mac OS 9或.NET支援的使用者可能是沒有搞清楚問題緣由所在。
PHP快速的加入新工能
專門開發網頁技術的使用者可能有時會因為產品標準官方用來提供迅速技術的新功能加入而感到無所適從,但在PHP方面這是沒有問題的,因為它所仰賴的只是開發者,C編譯器,以及加入重要新功能的夢想,這並非表示PHP團隊會不經社群聲音就任意接受將某功能加入發行版中,但是獨立的開發者仍然可以將自己的擴充功能藉由稍後加入主要PHP套件內的方式來運作,例如,Dan Libby完美的xmlrpc-epi擴充組件就在PHP發行4.1版本的時候被採用,而它是在首先以獨立套件的發行後數月才加入的。
開發PHP也是相一當一致而持續進行的,雖然仍由一些主要的影響問題,例如PHP 3與PHP 4之間過渡的問題,這些主要都成因自解析器本身,程式設計師事實上在版本之間大多數的擴充組件並不會有太大問題,此外PHP專隊根據開放原始碼「儘早發行、常常發行」的原則,這使得開發者可以有很多機會可以變更並提出bug 建議,如此比較起.NET方式的話,會發現它讓開發者等了Microsoft將近一年但是還沒有更新IIS也甚至尚未發行主要版本的.NET伺服器。
PHP正在流行並逐漸成長
自94年始,PHP的誕生到如今,PHP已經從一種針對網絡開發的優秀工具變成了一款適合於企業配置的完全的平台,而且它正在變得越來越普及,並且擁有了一個巨大的資源基礎,目前PHP正被1500多萬個網站使用,PHP本身也迅速成為網路應用的最受歡迎的語言。特別是在歐洲和北美地區,PHP已被應用於包括金融、政府、交通、電信、媒介、娛樂等各大產業,完全脫離了一個簡單網路語言開發工具的境界。
在國外,數以百萬計的專業工程師將PHP作為主要開發語言,形成了不同地域的俱樂部或類似的團體組織,經常一起探討有關PHP的大家關心的問題。例如最近一段時間,無論在歐洲的比利時、荷蘭、英國,或是北美的美國、加拿大等都有一些團體在積極的活動。我們中國作為最大的網路國家,有著眾多的PHP愛好者,可以說比任何一個國家的都多,希望我們大家聯合起來,倡議組成一個中國規模最大的PHP中國。以此來推動中國的PHP發展,並為廣泛的PHP愛好者提供一個交流的平台。
正如你所能看出的,從1998年十月到1999年十月這段時間,PHP的使用者在網域數目上表現了800%的成長率。隨著Web網站而變得無所不在,並且其中大部分都不再僅是簡單的靜態HTML頁,PHP有望迅速獲得絕對數量的使用者。
儘管確定牢固地位有些困難,但PHP相對於類似產品來說的確處於強勢。 24%的Web伺服器採用了微軟的Active Server Pages技術,而接受調查的網域中有大約4%應用了ColdFusion.根據更大規模並且更精確的採樣,所有Web伺服器中有24%使用了PHP,所以可以稱得上是最受歡迎的伺服端網頁程式語言。
Active Server Pages和ColdFusion很容易見到,因為許多大型電子商務網站都選擇使用它們。但有多數Web網站都是提供資訊形式,而非有收益或是國家政府的,因而沒法子應付太高的開發費用。在這類的網站中,PHP比競爭對手享有更實質的競爭優勢。
PHP並不屬於任何人
PC工業的進展大都可說是「專利權標準」的編年史:先嘗試建立腳點,然後在本身利益以及對客戶的虧欠中相互的碰撞,最後再以新的標準取代…
但是,過去幾年中,Internet提供了自發性,基於標準,無關平台的兼容性…等特性的最大容度。例如, e-mail的應用是如此廣泛,就是因為客觀存在使用了一個清晰而固定的標準,不管什麼平台的什麼程序都必須遵從這個標準。在後來想在打破這個標準的新開發案(例如,基於HTML格林的e-mail信紙),一般都認為是偏離標準。
此外,顧客(尤其是龐大系統的大客戶們)傾向於花費龐大來遵循專有的標準,這只是因為市場的傾向卻非保證,而現行的方式為使用XML與Web服務來驅動,這是因為多年來顧客並不滿意Java RMI,CORBA,COM,以及甚至更早的專有方法及資料格式。
目前,軟體開發人員正嘗試把專利權和開放標準融合在一起。公司一方面要確保收益的維持,同時也要採用開放的標準。有一些與專利權標準相關的主要法律衝突,這些都還在解決當中。最終可能會對原始碼基礎部分進行統一更改,甚至可能影響所涉及公司其未來的生存。面對氖這些不確定性,能夠預知未來解決此類問題的解決方案會吸引目前大量的廠商。
PHP擁有最大的靈話性,正因為它本身屬反對專利權形式的。它不是依附於任何伺服器作業系統,這一點也不像Active Server Pages。它並不依附於任何握有專利權的跨平台標準或中介軟體,這點與Java Server Pages或ColdFusion不同。它也不依附於任何瀏覽器、程式語言或資料庫。 PHP並不是照本宣科只和開放原始碼的軟體合作,這種具備獨立性又能合作的實用態度有助於PHP在開發領域上更順利發展。
PHP社群PHP是由世界和各地的使用者社群以合作方式關開發和支援的,的確是有些怪獸級的程式高手會有很多想法和熱情,他們的狂熱的確完成了大多數工伯,把最好的思路貢獻出來,並與大多數使用者維持良好關係。
對於大多數初學者來說,主要好處在於免費、無國界且無條件的技術支援。郵寄清單(mailing list)上的人們像7-11便利商店全年無休來回答問題、幫程序碼調試,並傾聽你的抱怨。這種支援更具人性化,並且更真實。 PHP社群成員可能會要你閱讀手冊,把問題轉給資料庫中已回答的郵件清單,或是讓你發牢騷,但他們絕對不會要你把C槽砍掉或要求你付費。通常他們會先查看你的程式碼,並告知你什麼地方錯了,或者,甚至可以幫助你從頭開始設計一個應用程式。
當你對PHP更加熱悉之後,可能希望自己也有所回饋和貢獻。你可以追從記錄bug,並的供建議給郵寄清單上的其它人、把你的程序範例傳到公共資料庫讓別人取用、編寫相關文件分享知識給別人、當然也可以編寫C或C+ +的程式碼;這些都可以回報社群的方式。
摘要
PHP不是解決每個Web開發問題的萬能鑰匙,但它是具有很多優勢的。 PHP是由Web開發人員建立,並且也由Web開發人員使用。還有很多熱心社群在提供支持。它們功能十分強大,效能可靠又十分便於使用。對於各種類型的後端資料,它都提供了最佳形式的連接。我們之前沒有忘記提及它是免費的這一點?要了解PHP,最好是在許多最常見Web開發專案中使用它。
以上就是PHP學習寶典-第一章的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!