PHP5

2004年7月,PHP5正式版本的發布,標誌著一個全新的PHP時代的到來。它的核心是第二代Zend引擎,並引入了對全新的PECL模組的支持。

基本介紹

  • 中文名超文本預處理器
  • 外文名:Hypertext Preprocessor
  • 縮寫:PHP5
  • 類屬:簡便易用的腳本語言
語言簡介,PHP,PHP2,PHP3,PHP4,PHP5,GO PHP5,PHP特點,協定支持,發展趨勢,

語言簡介

PHP是“PHP:Hypertext Preprocessor”的縮寫,即“超文本預處理器”。PHP是一種功能強大,並且簡便易用的腳本語言
PHPPHP

PHP

PHP是一種簡單、輕便的伺服器端腳本語言PHP最初是作為一個快速、實用的工具包出現的。1994年,為了在自己的網站上增加一個小巧而實用的訪客追蹤系統,Rasmus Lerdorf編寫了PHP的雛形程式。這是一個用Perl封裝的簡單工具。由於使用效果並不理想,Rasmus又用C語言重寫了這個工具。
後來,更多的人注意到這個輕巧而簡便的程式,並且要求增加更多的功能。Rasmus決定發布一個完整的版本,將其命名為Personal Home Page Tools。後來,Rasmus又發布了一個名為FI的可以做SQL查詢的工具。

PHP2

1996年Rasmus發布了PHP/FI2.0,這是一個基本完善的PHP程式包。它不僅可以訪問資料庫,而且可以嵌入HTML頁面。此時,PHP/FI2.0以及吸引了大量的程式開發人員。在眾多程式設計師之中,也包括了Zeev Suraski和Andi Gutmans,他們就是後來PHP3的始作者。由於不滿足於PHP/FI在大型項目中的表現,Zeev和Andi作了重大的改進。

PHP3

1998年末,PHP3的第一個官方正式版本發行,其特色是具有更好的執行效果以及更清晰的結構。除此之外,PHP3的強大的功能還在於它的可擴展性。除了給最終用戶提供資料庫、協定和API的基礎結構,它的可擴展性吸引了大量的開發人員加入並提交新的模組。
這個全新的語言伴隨著一個新的名稱發布。這個名稱更具廣泛意義,而不僅局限於“個人主頁工具”的概念。它被命名為簡單的縮寫“PHP”。這是一種遞歸的縮寫,它的全稱是——PHP:Hypertext Preprocessor。
不久,Zeev Suraski和Andi Gutmans投入到了全新的PHP的開發之中。設計目標是增強程式運行性能和PHP自身代碼的模組性。

PHP4

新的PHP核心被成為“Zend”(以Zeev和Andi的名字命名)引擎,於2000年5月隨著新版PHP4.0發布。PHP4的性能較PHP3有著顯著的提高。相同的腳本在PHP4中運行,最高可以有近10倍的性能提升。並且Zend提供了的腳本最佳化器,可以把源程式轉為二進制編譯代碼,提高性能的同時,也保護了程式源碼不被暴露。
在PHP4中增加了對各種Web伺服器(如ApacheIIS/PWS及OmniHTTPd等)的支持。此外,PHP4還增加了一些新的語言特性,如豐富的數組操作函式、完整的會話機制、對輸出快取的支持等。PHP4也對一些跨平台的技術提供了擴展支持,如對Adobe PDF、SWFJava、Microsoft . NET等技術的支持。
PHP4還增加了對類與對象的支持。儘管PHP4在這方面並不完善,但還是大大改善了對面向對象程式設計的支持。PHP4中的Pear庫(PHP Extension and Application Repository)就是面向對象的套用與實踐的最好例證。

PHP5

儘管PHP4的發展是如此迅猛,但較之於其他流行的開發語言還是缺乏一些關鍵的功能特性,比如,PHP4中的面向對象功能並不完善,也無法實現異常(Exception)的捕捉與處理。因此在一些特殊問題的處理上還是捉襟見肘的。
2004年7月,PHP5正式版本的發布,標誌著一個全新的PHP時代的到來。它的核心是第二代Zend引擎,並引入了對全新的PECL模組的支持。PHP5的最大特點是引入了面向對象的全部機制,並且保留了向下的兼容性。程式設計師不必再編寫缺乏功能性的類,並且能夠以多種方法實現類的保護。另外,在對象的集成等方面也不再存在問題。使用PHP5引進了類型提示和異常處理機制,能更有效的處理和避免錯誤的發生。
在不斷更新的同時,PHP5依然保留對舊有的PHP4程式可以運行於PHP5的平台上而不會出現較大問題。隨著MySQL資料庫的發展,PHP5還綁定了新的MySQLi擴展模組,它提供了一些更加有效的方法和實用工具用於處理資料庫操作。這些方法大都以面向對象的方式實現,同時也極大地提高了基於資料庫的Web項目的執行速度。
PHP5PHP5
另外,PHP5中還改進了創建動態圖片的功能,能夠支持多種圖片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及內置了對GD2庫的支持,因此安裝GD2庫(主要指UNIX系統中)也不再是件難事,這使得處理圖像十分簡單和高效。
大多數Web程式開發者依然將XML作為一個徹底的簡單資料庫使用。PHP5中也採用了一系列簡單易用、功能強大的方法處理XML文檔。
今天,已經有包括雅虎和亞馬遜等在內的數百萬網站,以及眾多的開發人員和編程愛好者正在使用PHP。從最初的PHP/FI到PHP5,PHP的發展是及其迅猛的,其未來的發展前景也必定令人矚目。

GO PHP5

PHP5發布3年後,PHP4仍然在為各大虛擬主機提供服務,大量主機hosting上還是永遠的php4。之所以造成這種情況,有著多方面的原因。
2007年7月5日,一個PHP開發者聯盟宣布,作為共同使PHP開發者社區完全遷移到PHP的5版本的努力的一部分,一些主要的開源PHP項目從2008年2月5日起在他們即將發布的軟體中將放棄支持PHP舊的版本。
作為配合努力的一部分,Symfony, Typo3,phpMyAdmin,Drupal,Propel, 和Doctrine這些項目已經都宣布2008年2月5日以後他們的下一個版本將需要PHP5.2,而且已經向其它PHP項目和套用發出了公開邀請,包括開源的和非開源的,希望他們參與到這項努力中來。
許多基於PHP的網站套用現在既有運行PHP4的,也有運行PHP5的。PHP4在2000年發布,並且迅速鞏固了作為統治性的網路開發語言的地位。PHP5發布於2004年,它在功能上有顯著的改進,但是主要由於許多新平台發布伴隨著“雞和蛋”的問題,它發展很慢。首先PHP開發者還沒摸透在沒有php4的情況下,用php5來跑從前的套用會不會有潛在的問題。大量主機上仍然安裝的是php4,這會使用戶避免選擇php5 only的web應用程式。也是因為這個原因,大量主機商還不能馬上升級到php5,因為他們不知道用戶將要跑php4或是php5的web套用。這樣一來,php的開發者越發不能擺脫php4,他們為了適應環境,寫出來的代碼可能都是php4/php5兼容的。
goPHP5goPHP5
這對php開發者來說,是如同夢魘一般的一個死循環。一些open source的php開發團體為了擺脫這個困境,終於決定做出一些動作來打破僵局了!!他們在2008年2月份以後發布程式將僅僅官方的支持php 5.2.0以後的版本(官方的支持意味著某些程式還是能保持php4的兼容性的,但是不承諾)!!這個活動被稱之為GoPHP5!!這些php開發團體已知的名單如下:
自從推辦goPHP5,已經有超過 100 個軟體開發項目和超過 200 個網路主機支援 PHP 5.2。相對從前,現在可以輕鬆地找到託管解決方案,軟體開發商亦可以使用 PHP 5 具吸引力的新功能,而不需要擔心他們的用戶別無選項。
對於用戶來說,使用php4或者php5無關緊要,他需要的僅僅是他的程式可以run。那么列表中擁有大量用戶基礎的php程式的轉向,將會是驅動主機商升級到php5的極大動力。

PHP特點

字元串與數組處理
字元串數組是所有計算機程式語言中最基本的數據結構。在各種語言中,對這兩種數據結構的支持是完善的,PHP也是如此。作為一種面向Web開發的程式語言,PHP也有著自己的獨特性。
PHP有著簡單易用和功能強大的特點,這完全要歸功於其開放的模組化設計。在基於Zend引擎的支持和最佳化下,各種各樣的擴展模組,其功能已經覆蓋幾乎所有的Web套用。
URL的處理
利用URL函式館,PHP可以用簡單的方法對URL地址進行解碼或編碼。而在此之前,需要編寫一組代碼加以實現。
正則表達式是一種強大的字元串分析工具。正則表達式早期僅用於UNIX系統程式,現在已經被絕大多數系統,程式所支持。隨著正則表達式移植到交叉平台的程式語言的發展,其功能也日益完善。
單詞拼寫的處理
利用單詞拼寫檢查庫PSpell,PHP可以像Word中的“單詞拼寫檢查”一樣,對文本中的錯誤拼寫進行指正。儘管這不常用,但對於某些場合(如輔助編輯進行校勘),這種處理是非常有益的。
數據的串列化
使用serialize()及unserialize()等函式,可以將數組、對象等數據進行序列化編碼,從而方便其在資料庫或會話周期中的存儲。另外,利用WDDX(分散式數據格式)串列化數據,可以在套用環境中交換更為複雜的數據結構。
對不同類型檔案的支持
PHP不僅僅局限於HTML和文本檔案的處理,也可以符合特定格式的檔案進行快速處理。例如對於CVS(逗號分隔檔案)、INI(Windows配置檔案)以及XML檔案,PHP中都有專用的解析函式。除了上述文本檔案,PHP還提供可以讀取 ZIP檔案的zlib壓縮檔案庫。
PHP能夠非常簡便的輸出文本,如XHTML以及任何其他形式的XML檔案。PHP還能動態的輸出圖像(GD2庫)、PDF檔案(PDFLib庫)甚至Flash動畫(LibSWF和Ming庫)。在Windows系統中,PHP能夠在伺服器端開闢出一塊動態的快取空間,從而直接列印這些檔案(使用Printer擴展)。
簡便的資料庫操作
PHP最顯著的特徵之一,是它支持很大範圍的資料庫系統。用戶會發現,利用PHP編寫基於資料庫支持的動態網頁簡單得難以置信。目前,PHP支持如表1-1所示的資料庫系統。
表1-1 PHP支持的資料庫系統
Adabas D dBase Empress
FilePro(唯讀) Hyperwave IBM DB2
Informix Ingres InterBase
FrontBase MSQL Direct MS-SQL
MySQL ODBC Oracle
Ovrimos PostgreSQL SQLite
Solid Sybase Velocis
UXIX dbm
目錄與檔案的操作
檔案系統是作業系統的主要組成部分,是數據存儲的基本單元。利用目錄和檔案函式,PHP可以對本地檔案系統進行直接操作,如對檔案或目錄進行的創建、刪除和讀取操作,也可以對其所有者許可權、組別等信息進行查詢和變更操作。
當激活了phpini檔案中的“allow_url_fopen”選項後,利用簡單的 fopen()或fwrite()等函式就可以對遠程檔案進行操作。例如:程式可以讀取或下載遠程Web伺服器的檔案;對於具有適當許可權的用戶,還可以登錄遠程FTP伺服器進行數據的保存或下載操作,甚至可以使用syslog()函式進行分散式日誌的管理和維護。

協定支持

通常,用戶在編程過程中還會涉及到各種不同接口之間的通信問題,如打開檔案並讀取,或者建立一個套接字(Socket)連線傳送數據。這些過程都是基於各種通信協定完成的。所謂通信協定,實際就是系統間傳送和接受數據時所遵循的特定方法。
PHP支持諸如FTP、LDAPIMAP、NNTP、POP3、HTTP、 COM(Windows環境)等大量的通信協定。PHP還可以開放原始網路連線埠,使得任何其他的協定能夠協同工作。PHP支持和所有Web開發語言之間的 WDDX複雜數據交換。目前,PHP已經支持了對Java對象的使用,並且可以將它們自由的用作PHP對象。

發展趨勢

PHP作為最成熟的開源體系LAMP(Linux,Apache,MySQL,PHP)的重要一員,以其簡單性、開放性、低成本、安全性和適用性,受到越來越多的Web程式設計師的歡迎和喜愛。
PHP中提供了作為編碼語言所有的基本功能。此外,它還提供許多實用的功能,使得PHP比其他程式語言更適合動態網頁的開發。針對企業級Web套用,PHP也不斷地完善和增加新的功能。
PHP是源碼開放的,這意味著其代碼的核心部分可以被免費使用。所有源碼、文檔可以在PHP官方網站上獲得。用戶可以自由複製、編譯、分發其拷貝。任何一個用PHP編寫的程式都屬於用戶自己,並且可以自行處理。
正式由於這種開源精神,才使PHP社區可以聚集眾多的愛好者,也使得PHP有如此迅猛的發展。PHP的更新速度,以及發現和修正錯誤的速度是非常迅速的。可以看到,幾乎每周都有一個新版本的PHP程式包發布。
目前,PHP的官方維護者和推動者Zend公司已經加快了PHP企業級套用的步伐。隨著PHP5的套用不斷擴大,Zend公司還將推出一個標準的PHP開發框架Zend Framework。通過這一框架,PHP開發者可以快速地構建Web套用。
PHP還具有優秀的平台兼容性。PHP源於UNIX系統平台,尤其是PHP、MySQL、 Apache和Linux組合,備受PHP愛好者的歡迎。不僅如此,PHP在Windows系列作業系統上也有出色的表現。其良好的程式界面、語言易用性等特點吸引了微軟的開發人員。目前,有訊息稱未來的Windows . NET開發環境將集成PHP,這也意味著PHP的用戶群將日益壯大。
如同ASP具有Windows自己的開發平台一樣,Zend也為PHP設計了全新的開發環境 Zend Studio。這是一款集程式調試、系統發布以及開發環境為一體的PHP開發軟體。這將大大簡化PHP開發過程,並且縮短相應的測試周期。另外,Zend 還將與IBM公司合作推出集成Zend IDE特性的Eclipse軟體供大家使用。
PHP是廣泛及通用的腳本語言,它尤其適合於Web開發。PHP是世界上主要的網路開發語言之一,運行在世界三分之一的伺服器上。它是從雅虎到Facebook等公司的平台選擇,也是共享主機上最廣泛的開發平台,為世界上數百萬的網站提供動力。
隨著PHP5版本性能的提升,以及面向對象功能的完善,PHP也逐漸開始於面向企業級套用。PHP的發展前景將無限廣闊。
現在php5的最新版本為php5.4.3,較php5.3增強了安全特性,去掉了一些威脅安全的函式如global_register等,去掉了安全模式。

相關詞條

熱門詞條

聯絡我們