久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

PHP概述

來自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航: 上一頁(yè) | ASP | PHP | JSP | HTML | CSS | XHTML | aJAX | Ruby | JAVA | XML | Python | ColdFusion

歷史[ ]

最初的 PHP 要追溯到 1995 年,當(dāng)時(shí)一個(gè)名叫Rasmus Lerdorf 的獨(dú)立軟件開發(fā)承包人開發(fā)了一個(gè)Perl/CGI 腳本,可以讓他了解有多少訪問者閱讀了他的在線簡(jiǎn)歷。他的腳本執(zhí)行兩項(xiàng)任務(wù):將訪問者信息記入日志,顯示網(wǎng)頁(yè)訪問者的數(shù)量。Web 雖然現(xiàn)在已經(jīng)家喻戶曉,但在當(dāng)時(shí)卻很年輕,所以類似的工具以前從未有過,于是人們向 Lerdorf 發(fā)送電子郵件咨詢他的這個(gè)腳本。自此 Lerdorf 開始分發(fā)他的工具集,并稱之為個(gè)人主頁(yè)(PHP)。
由于對(duì) PHP 工具集的呼聲很高,這促使 Lerdorf 繼續(xù)開發(fā)這種語(yǔ)言。他增加了一個(gè)能把在 HTML表單中輸入的數(shù)據(jù)轉(zhuǎn)換為符號(hào)變量的功能,從而允許導(dǎo)出到其他系統(tǒng),這或許算得上是早期最突出的一次改進(jìn)。為此,他選擇用C 而不是 Perl 代碼來進(jìn)行后續(xù)的開發(fā)。對(duì) PHP 工具集的不斷增補(bǔ)在 1997年 11 月達(dá)到了頂峰,這時(shí)發(fā)行了 PHP 2.0,即“個(gè)人主頁(yè)——表單解釋器”( PHPFI)。由于 PHP 不斷普及,所以 2.0 版本得到了來自全世界程序員的大量改進(jìn)和提高。這個(gè)新 PHP 版本非常流行,很 快就有一個(gè)核心開發(fā)團(tuán)隊(duì)加入到 Lerdorf。他 們保持了原先在 HTML中直接加入代碼的概念,重新編寫了解析引擎,這就誕生了 PHP 3.0。到 1998 年 6 月發(fā)行版本 3.0 為止,已經(jīng)有超過 5 萬(wàn)個(gè)用戶在使用 PHP 改進(jìn)其網(wǎng)頁(yè)。
注解
1997年還出現(xiàn)了一個(gè)變化,PHP的含義由Personal Home Page(個(gè)人主頁(yè))變成了HypertextPreprocessor(超文本預(yù)處理器)的縮寫詞。接下來的兩年中,開發(fā)繼續(xù)狂熱地進(jìn)行著,又增加了成百上千項(xiàng)功能,用戶數(shù)量也在飛速增長(zhǎng)。
在 1999 年初,Netcraft(http://www.netcraft.com/)公布了一個(gè)保守的估計(jì),稱用戶數(shù)已經(jīng)超過了 100 萬(wàn),這說明 PHP 已經(jīng)成為了世界上最流行的腳本語(yǔ)言之一。它 的廣泛流傳甚至超出了開發(fā)人員最樂觀的期望,并且很快用戶們準(zhǔn)備用 PHP 開發(fā)功能更強(qiáng)大的應(yīng)用程序。兩位核心開發(fā)人員(ZeevSuraski 和 Andi Gutmans)開始主動(dòng)地徹底重新考慮 PHP 的工作方式,最終改寫了 PHP 的解析器,稱之為 Zend 腳本引擎。這些工作的最終成果就是 PHP 4 的發(fā)布。



PHP 4[ ]

2000 年5 月22 日,第一次正式宣布再次開發(fā)之后的大約18 個(gè)月,發(fā)布了PHP 4.0。許多人都認(rèn)為PHP 4的發(fā)布是這種語(yǔ)言在企業(yè)級(jí)開發(fā)環(huán)境下的正式亮相,這 個(gè)觀點(diǎn)也由于PHP的迅速普及得到了佐證。僅僅在發(fā)布后的幾個(gè)月內(nèi),Netcraft(http://www.netcraft.com/)估計(jì)就有超過 360 萬(wàn)個(gè)域安裝了PHP。

特性[ ]

PHP 4 包括了以下幾項(xiàng)企業(yè)級(jí)的改進(jìn):
改進(jìn)了資源處理:
可 擴(kuò)展性是版本 3.X 的主要缺點(diǎn)之一。這 主要是因?yàn)樵O(shè)計(jì)者低估了這種語(yǔ)言,沒考慮到它會(huì)大量用于大規(guī)模應(yīng)用程序。最初并沒有打算用這種語(yǔ)言開發(fā)企業(yè)級(jí)網(wǎng)站,但后來確實(shí)有這樣的嘗試,這就使得開發(fā)人員開始重新考慮這種語(yǔ)言的機(jī)制。最終促使在版本 4中對(duì)資源處理進(jìn)行了大幅改進(jìn)。
面向?qū)ο蟮闹С郑?br /> 版本 4 在一定程度上結(jié)合了面向?qū)ο蟮墓δ?,盡管一般認(rèn)為這只是一個(gè)很平常的實(shí)現(xiàn)。不過,對(duì)于使用傳統(tǒng)面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)語(yǔ)言的用戶來說,這個(gè)新特性在吸引這些用戶方面起到了非常重要的作用。除了對(duì)象重載和運(yùn)行時(shí)類信息,PHP 還支持標(biāo)準(zhǔn)的類和對(duì)象開發(fā)方法。版本 5 支持更復(fù)雜的 OOP 實(shí)現(xiàn),第 5 章將介紹這方面的內(nèi)容。
內(nèi)置 的會(huì)話處理支持 :
版本 3.X 通過第三方包 PHPLIB(http://phplib.sourceforge.net)來支持 HTTP 會(huì)話處理,在 版本 4 中 HTTP 會(huì)話處理則是內(nèi)置的功能。這個(gè)特性使得開發(fā)人員可以相當(dāng)高效輕松地跟蹤用戶活動(dòng)和偏好。第 15章將介紹 PHP 的會(huì)話處理功能。
加密:
MCrypt(http://mcrypt.sourceforge.net)庫(kù)引入到默認(rèn)發(fā)行包中,為用戶提供了完全加密和散列加密,使用的加密算法包括 Blowfish、MD5、SHA1 和三重 DES 等。第18 章將討論 PHP 的加密功能。
ISAPI 支持:
對(duì) ISAPI 的支持使用戶能夠?qū)?PHP 與微軟的 IIS Web 服務(wù)器(作為一個(gè) ISAPI模塊)結(jié)合使用,大大提高了性能和安全性。
內(nèi)置 COM/DCOM 支持:
對(duì) Windows 用戶來說,另 一個(gè)好處是 PHP 4 能夠訪問和實(shí)例化 COM對(duì)象。這項(xiàng)功能擴(kuò)展了與 Windows 應(yīng)用程序的互操作性。
內(nèi)置 Java 支持:
這也是 PHP 在互操作性方面的一大進(jìn)步,版本 4.0 支持 PHP 應(yīng)用程序綁定Java 對(duì)象。
與 Perl 兼容的正則表達(dá)式(PCRE)庫(kù):
Perl 語(yǔ)言一直以來在字符串解析領(lǐng)域雄霸天下,占據(jù)著統(tǒng)治地位。開發(fā)人員知道,如果想讓 PHP 得到廣泛認(rèn)可,強(qiáng)大的正則表達(dá)式功能會(huì)起到重要作用。他們的做法只是集成 Perl 的功能,而不是重新開發(fā),并將 PCRE 庫(kù)的包集成在 PHP的默認(rèn)發(fā)行包中(版本 4.2.0)。第 9 章將詳細(xì)介紹這個(gè)重要的特性,并介紹經(jīng)常引起混淆的正則表達(dá)式語(yǔ)法。
除了這些特性外,版本 4 還添加了幾百項(xiàng)功能,大大提升了這種語(yǔ)言的能力。本書中,我們將討論其中大部分功能,因?yàn)檫@些功能在版本 5 中仍然很重要。


缺點(diǎn)[ ]

在 PHP 語(yǔ)言的發(fā)展歷程上,PHP 4 代表著一次巨大的飛躍。這個(gè)新版本帶來的新功能、強(qiáng)大能力和可擴(kuò)展性對(duì)開發(fā)新手和老手都產(chǎn)生了不小的震動(dòng),這 也使 PHP 在 Web 腳本領(lǐng)域確立了牢固的地位。但是,要想讓用戶對(duì)哪種語(yǔ)言矢志不渝是很困難的事情;程序員通常會(huì)有這樣一種想法“你最近為我做了什么”。PHP 開發(fā)團(tuán)隊(duì)牢記這一點(diǎn),因?yàn)椴痪靡院笏麄兙烷_始著手開展另一個(gè)里程碑性的任務(wù),要在Web 腳本領(lǐng)域推出一個(gè)重量級(jí)語(yǔ)言(就像一個(gè)800 磅的大猩猩):PHP 5


PHP5[ ]

版本 5 是 PHP 語(yǔ)言發(fā)展歷程中的另一座分水嶺。雖然前面的主要版本已經(jīng)增加了許多庫(kù),版本 5則在現(xiàn)有的功能上又進(jìn)行了許多改進(jìn),并且增加了成熟的編程語(yǔ)言體系結(jié)構(gòu)才有的一些特性:
極大地提高了面向?qū)ο竽芰Γ?br /> PHP 的面向?qū)ο篌w系結(jié)構(gòu)得到了改進(jìn),這是版本5 最突出的特點(diǎn)。版本 5 增加了很多功能,如顯式構(gòu)造函數(shù)和析構(gòu)函數(shù)、對(duì)象克隆、類抽象、變量作用域和接口等。另外,PHP 在處理對(duì)象管理方面也有重大改進(jìn)。
try/catch 異常處理:
具有諷刺意味的是,在結(jié)構(gòu)化編程語(yǔ)言中設(shè)計(jì)錯(cuò)誤處理策略時(shí),不僅非常容易出錯(cuò),而且很難保持一致。為了解決這個(gè)問題,版本5 開始支持異常處理。在許多語(yǔ)言中,如C++、C#Python 和Java 等,異常處理長(zhǎng)期以來一直都是錯(cuò)誤管理方面的中流砥柱,它為建立標(biāo)準(zhǔn)化的錯(cuò)誤報(bào)告邏輯提供了一種絕佳的方法。這種方便的新方法將在第8 章中介紹。
改進(jìn)的字符串處理:
之前版本的 PHP 默認(rèn)地將字符串看作數(shù)組,這也反映了 PHP 原先的數(shù)據(jù)類型觀點(diǎn)不夠嚴(yán)密。這種策略在版本 5 中有所調(diào)整,引入了一種專門的字符串偏移量(offset)語(yǔ)法,而以前的方法已經(jīng)廢棄不用。第9 章將討論這種新語(yǔ)法帶來的新特性、變化和效果。
改進(jìn)的XML 和Web 服務(wù)支持:
現(xiàn)在的 XML 支持建立在 libxml2 庫(kù)基礎(chǔ)上,還引入一個(gè)很新但非常有前途的擴(kuò)展包來解析和處理 XML:SimpleXML。此外,PHP 5 還支持 SOAP 擴(kuò)展。第 20 章將介紹這兩個(gè)新擴(kuò)展,并介紹一些很棒的第三方Web 服務(wù)擴(kuò)展。
對(duì) SQLite 的內(nèi)置支持:
開 發(fā)人員的腳步一直沒有停止,還 為功能強(qiáng)大但很簡(jiǎn)潔的 SQLite 數(shù)據(jù)庫(kù)服務(wù)器(http://www.sqlite.org/)提供了支持。如果開發(fā)人員需要一些重量級(jí)數(shù)據(jù)庫(kù)產(chǎn)品中才有的特性,同時(shí)不希望帶來相應(yīng)的管理開銷,SQLite 就能為這些開發(fā)人員提供一個(gè)方便的解決方案。第22 章將介紹 PHP 為這個(gè)強(qiáng)大的數(shù)據(jù)庫(kù)引擎提供的支持。




實(shí)用性[ ]

自始以來,PHP 就是以實(shí)用性為目的而創(chuàng)建的。畢竟,Lerdorf 最初的意圖不是設(shè)計(jì)一門全新的語(yǔ)言,而只是為了解決一個(gè)沒有現(xiàn)成解決方案的問題。此外,PHP 早期的發(fā)展并非明確地希望改進(jìn)語(yǔ)言本身,而只是要為用戶增加功能。其結(jié)果就是建立了一個(gè)最低需求(minimalist)語(yǔ)言,不僅對(duì)用戶的需求很低,對(duì)語(yǔ)言的語(yǔ)法需求也很低。對(duì)于剛?cè)腴T的人來說,一個(gè)有用的 PHP 腳本可能只包含一行代碼;與 C 不同,它不需要導(dǎo)入庫(kù)函數(shù)。
PHP 語(yǔ)言很強(qiáng)調(diào)緊湊性,這還反映在它能嵌套函數(shù)。例如,通過在一行代碼中按特定的順序調(diào)用函數(shù),可以對(duì)一個(gè)值進(jìn)行一系列修改。
PHP 是一種類型松散的語(yǔ)言,這意味著不需要明確地創(chuàng)建變量、指派類型或撤銷變量,當(dāng)然也沒有絕對(duì)禁止做這些操作。PHP 在內(nèi)部處理這些情況,腳本中使用變量時(shí) PHP 會(huì)動(dòng)態(tài)創(chuàng)建變量,并使用最優(yōu)推測(cè)規(guī)則自動(dòng)指派變量的類型。
PHP 還會(huì)在腳本結(jié)束時(shí)自動(dòng)撤銷變量,將資源返回給系統(tǒng)。從這些方面來看,由于 PHP 在內(nèi)部處理了編程的許多管理方面的問題,這就允許開發(fā)人員集中精力去完成最終的目標(biāo),也就是開發(fā)一個(gè)實(shí)用的應(yīng)用程序。



強(qiáng)大功能[ ]

在前面介紹 PHP 5 時(shí)就已經(jīng)提到,這個(gè)新版本相對(duì)于以前的版本更重視質(zhì)量,而非數(shù)量。以前的主要版本向 PHP 的默認(rèn)庫(kù)增加很多特性,每次發(fā)行新版本都會(huì)增加幾百項(xiàng)新功能。目前,PHP 有 113個(gè)可用的庫(kù),總共有 1000 余項(xiàng)功能。也許,你知道 PHP 能訪問數(shù)據(jù)庫(kù)、處理表單信息以及動(dòng)態(tài)創(chuàng)建頁(yè)面,但你可能不知道 PHP 還有以下功能:
創(chuàng)建并處理Macromedia Flash、圖片和 PDF 文件。
將密碼與字典數(shù)據(jù)和容易破解的模式進(jìn)行比較,評(píng)估密碼的可猜測(cè)性。
與輕量級(jí)目錄訪問協(xié)議(LDAP)通信。
使用基于 POSIX 和 Perl 的正則表達(dá)式庫(kù)解析最復(fù)雜的字符串。
通過存儲(chǔ)在純文本文件、數(shù)據(jù)庫(kù)或Microsoft 活動(dòng)目錄中的登錄憑證來鑒別用戶身份。
與多種協(xié)議通信,包括 IMAP、POP3、NNTP 和 DNS 等。
與大量信用卡處理解決方案通信。
當(dāng)然,后面的章節(jié)將盡可能地涵蓋 PHP 的各項(xiàng)有趣而且有用的特性。


可選擇性[ ]

PHP 開發(fā)人員很少只局限于一種實(shí)現(xiàn)方案。相反,這個(gè)語(yǔ)言為用戶提供了充分的選擇。例如,考慮一下 PHP 對(duì)數(shù)據(jù)庫(kù)的支持。P HP 為不少于 25 種數(shù)據(jù)庫(kù)產(chǎn)品提供了內(nèi)置支持,包 括 Adabas D、d Base、Empress、F ilePro、F rontBase、H yperwave、IB M DB2、In formix、In gres、In terbase、m SQL、d irect MSSQL、MySQL、Oracle、Ovrimos、PostgreSQL、Solid、Sybase、UNIX dbm 和 Velocis。此外,也可以利用抽象層功能來訪問 Berkeley DB 類型的數(shù)據(jù)庫(kù)。最后,還有兩個(gè)數(shù)據(jù)庫(kù)抽象層可用,一個(gè)稱為 dbx 模塊, 另一個(gè)是通過 PEAR 的 PEAR DB。
PHP 強(qiáng)大的字符串解析功能也為用戶提供了豐富的可選擇性。除了超過 85 個(gè)字符串處理函數(shù)之外,PHP 還支持基于 POSIX 和 Perl 的正則表達(dá)式格式。這種靈活性使不同水平的用戶都能獲益,不僅能夠(利用字符串處理函數(shù))立即開始完成復(fù)雜的字符串操作,還可以(利用正則表達(dá)式)將有類似功能的程序(如 Perl 和 Python)快速移植到 PHP。
你更喜歡函數(shù)式編程語(yǔ)言嗎?還是采用面向?qū)ο蠓缎停╫bjectorientedparadigm)的語(yǔ)言?PHP 對(duì)二者都提供了全面的支持。雖 然 PHP 最初只是一種函數(shù)式語(yǔ)言,但 開發(fā)人員很快就意識(shí)到提供流行的OOP 范型的重要性,并開始實(shí)現(xiàn)一種可擴(kuò)展的解決方案。這里反復(fù)強(qiáng)調(diào)的重點(diǎn)是,PHP 允許你充分利用目前掌握的技能,只需投入很少的時(shí)間就能很快地開始 PHP 開發(fā)。這種策略在整個(gè)語(yǔ)言中頻頻出現(xiàn),這里提到的只是其中很少的一部分例子。


成本[ ]

PHP 從一開始就對(duì)使用、修改和再分發(fā)沒有任何限制。最近幾年,滿足這種開放許可限制的軟件稱為開源軟件(opensourcesoftware)。開源軟件和因特網(wǎng)就像面包和黃油一樣密不可分。開源項(xiàng)目如 Sendmail、Bind、Linux 和 Apache 都在因特網(wǎng)的發(fā)展方面起到了非常重要的作用。雖然媒體最為追捧的是開源軟件可以自由使用,但它還有另外幾個(gè)同樣重要的特點(diǎn)(甚至更重要):
沒有大多數(shù)商業(yè)產(chǎn)品所要求的許可限制:商業(yè)軟件往往有許多許可限制,而開源軟件的用戶沒有這些限制。雖然在許可權(quán)限上存在差異,但一般來講,用戶都能自由地修改和重新分發(fā)開源軟件,還能將開源軟件整合到其他產(chǎn)品中。
開放式開發(fā)和審計(jì)過程:雖然也曾有過一些意外事件,但開源軟件在安全方面還是享有很好的聲譽(yù)。這種高標(biāo)準(zhǔn)正是開放式開發(fā)和審計(jì)過程的結(jié)果。因?yàn)槿魏稳硕寄茏杂墒褂迷创a,所以安全漏洞和潛在的問題會(huì)很快被發(fā)現(xiàn)并得以修復(fù)。開源倡導(dǎo)者 Eric S. Raymond 很好地總結(jié)了這項(xiàng)優(yōu)點(diǎn),他說:“ 只要有足夠的眼睛,所有的 bug 都無(wú)處遁形?!?br /> 鼓勵(lì)參與:開發(fā)團(tuán)隊(duì)不限于某個(gè)組織。任何感興趣的人,只要具有相應(yīng)的能力,都可以自由地加入到項(xiàng)目中。由于不對(duì)成員進(jìn)行限制,這就大大增加了項(xiàng)目的人才儲(chǔ)備,必然能貢獻(xiàn)出更高質(zhì)量的產(chǎn)品。