複製鏈接
請複製以下鏈接發送給好友

PHP5

鎖定
PHP5是一款超文本預處理器。
中文名
超文本預處理器
外文名
Hypertext Preprocessor
縮    寫
PHP5
類    屬
簡便易用的腳本語言

PHP5語言簡介

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

PHP5PHP

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

PHP5PHP2

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

PHP5PHP3

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

PHP5PHP4

新的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)就是面向對象的應用與實踐的最好例證。

PHP5PHP5簡介

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

PHP5GO 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項目和應用發出了公開邀請,包括開源的和非開源的,希望他們參與到這項努力中來。
goPHP5 goPHP5
許多基於PHP的網站應用現在既有運行PHP4的,也有運行PHP5的。PHP4在2000年發佈,並且迅速鞏固了作為統治性的網絡開發語言的地位。PHP5發佈於2004年,它在功能上有顯著的改進,但是主要由於許多新平台發佈伴隨着“雞和蛋”的問題,它發展很慢。首先PHP開發者還沒摸透在沒有php4的情況下,用php5來跑從前的應用會不會有潛在的問題。大量主機上仍然安裝的是php4,這會使用户避免選擇php5 only的web應用程序。也是因為這個原因,大量主機商還不能馬上升級到php5,因為他們不知道用户將要跑php4或是php5的web應用。這樣一來,php的開發者越發不能擺脱php4,他們為了適應環境,寫出來的代碼可能都是php4/php5兼容的。
這對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的極大動力。

PHP5PHP特點

字符串與數組處理
字符串數組是所有計算機編程語言中最基本的數據結構。在各種語言中,對這兩種數據結構的支持是完善的,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()函數進行分佈式日誌的管理和維護。

PHP5協議支持

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

PHP5發展趨勢

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等,去掉了安全模式。