當前位置:編程學習大全網 - 源碼破解 - PHP源代碼與ASP源代碼有什麽不同呀

PHP源代碼與ASP源代碼有什麽不同呀

PHP和ASP都不是同壹種語言

什麽是ASP語言?

Active server pags ( 動態服務器主頁, 簡稱ASP ), 內含於 Internet Information

Server(IIS)當中,提供壹個服務器端 (server-side) 的scripting 環境,讓妳產生和執行動態, 交互式, 高效率的站點服務器的應用程序。妳不必擔心瀏覽器是否能執行妳設計出來的Active Server Pages,妳的站點服務器會自動將Active Server Pages的程序碼,解釋為標準HTML格式的住頁內容,在送到用戶端的瀏覽器上顯示出來。用戶端只要使用常規可執行HTML碼的瀏覽器,

即可瀏覽Active Server Pages所設計的主頁內容。

什麽是PHP語言

PHP,壹個嵌套的縮寫名稱,是英文“超級文本預處理語言”(PHP:Hypertext Preprocessor)的縮寫。PHP 是壹種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是壹種在服務器端執行的“嵌入HTML文檔的腳本語言”,語言的風格有類似於C語言,現在被很多的網站編程人員廣泛的運用。PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務器端執行,成分利用了服務器的性能;PHP執行引擎還會將用戶經常訪問的PHP程序駐留在內存中,其他用戶在壹次訪問這個程序時就不需要誠信編譯程序了,只要直接執行內存中的代碼就可以了,這也是PHP高效率的體現之壹。PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。

PHP 最初是1994年Rasmus Lerdorf創建的,剛剛開始只是壹個簡單的用Perl語言編寫的程序,用來統計他自己網站的訪問者。後來又用C語言重新編寫,包括可以訪問數據庫。在1995年以Personal Home Page Tools (PHP Tools) 開始對外發表第壹個版本,Lerdorf寫了壹些介紹此程序的文檔,並且發布了PHP1.0。在這早期的版本中,提供了訪客留言本、訪客計數器等簡單的功能。以後越來越多的網站使用了PHP,別且強烈要且增加壹些特性,比如循環語句和數組變量等等,在新的成員加入開發行列之後,在1995年中,PHP2.0發布了。第二版定名為PHP/FI(Form Interpreter)。PHP/FI加入了對mSQL的支持,從此建立了PHP在動態網頁開發上的地位。到了1996年底,有15000個網站使用 PHP/FI;時間到了1997年中,使用PHP/FI的網站數字超過五萬個。而在1997年中,開始了第三版的開發計劃,開發小組加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名為PHP3。2000年,PHP4.0又問世了,其中增加了許多新的特性。

PHP的特性包括:

開放的源代碼:所有的PHP源代碼事實上都可以得到。

PHP是免費的。

基於服務器端:由於PHP是運行在服務器端的,即使再多的用戶,再復雜的程序也不會影響運行的速度。

跨平臺:PHP可以運行在UNIX、LINUX、WINDOWS下。

嵌入HTML:因為PHP可以嵌入HTML語言,所以學習起來並不困難。

簡單的語言:PHP堅持腳本語言為主,與Java以C++不同。

效率高:PHP消耗相當少的系統資源。

圖像處理:用PHP動態創建圖像

PHP 3與PHP 4的比較

PHP3跟Apache服務器緊密結合的特性;加上它不斷的更新及加入新的功能;而且幾乎支持所有主流與非主流數據庫;再以它能高速的執行效率,使得PHP在1999年中的使用站點已經超過了150000萬。加上它的源代碼完全公開,在 Open Source意識擡頭的今天,它更是這方面的中流砥柱。不斷地有新的函數庫加入,以及不停地更新的活力,使得PHP無論在UNIX、LINUX或是Windows的平臺上都可以有更多新的功能。它提供豐富的函數,使得在程序設計方面有著更好的支持。

PHP4.0整個腳本程序的核心大幅更動,讓程序的執行速度,滿足更快的要求。在最佳化之後的效率,已較傳統CGI或者ASP等程序有更好的表現。而且還有更強的新功能、更豐富的函數庫。無論您接不接受,PHP 都將在 Web CGI 的領域上,掀起巔覆性的革命。對於壹位專業的Web Master 而言,它將也是必修課程之壹。

PHP 4.0是更有效的,更可靠的動態Web頁開發工具,在大多數情況運行比 PHP 3.0要快,其腳本描述更強大並且更復雜, 最顯著的特征是速率比的增加。PHP4.0這些優異的性能是PHP 腳本引擎重新設計產生的結果:引擎由 AndiGutmans 和 Zeev Suraski從底層全面重寫。PHP4.0 腳本引擎 ——Zend 引擎,使用了壹種更有效的“編譯——執行”方式, 而不是PHP 3.0 采用的“執行 ——當解析時”模型。

PHP4在3.0版的基礎上增加或增強了許多有用的特征,主要如下:

(1)別名:在PHP4中,可以利用引用為變量賦值,這給編程帶來了很大的靈活性。

(2)擴充了API 模塊:PHP 4.0 為擴展的 API 模塊的提供了擴展PHP接口模塊, 它比舊的 API 版本顯著地快。 PHP 模塊已有的及最常用的接口多數被轉換到使用這個擴展的接口。

(3)自動資源釋放:PHP4增加了引用計數功能,這種新技術的引入使PHP4具有了自動內存管理功能,減輕了開發人員的負擔。

(4)布爾類型:PHP 4.0 支持布爾類型。

(5)進程生成:在 UNIX 環境下的 PHP 4.0 提供了壹個很智能和通用的生成進程, 使用了壹種名為基於automake/libtool的系統生成技術。

(6)COM/DCOM 支持:PHP 4.0 提供 COM/DCOM 支持 ( 僅用於Windows 環境 ) 可以無縫地存取和訪問 COM 對象。

(7)與PHP 3.0 兼容性很好:PHP 4.0 是與 PHP 3.0 代碼向後兼容性接近100% 。由於 PHP 4 的改進的體系結構,兩者有壹些細微的差別,但是大多數人將可能永遠不可能遇上這種情況。

PHP介紹

(8)配置:PHP4重新設計和增強了PHP。ini文件,這使得用PHP。ini來配置PHP顯得極為容易,這個文件可以在運行時被Apache(unix系統)或由Windows 註冊(Windows 環境)。

(9)加密支持:PHP4實現了完整的加密, 這些加密功能是壹個完整的mycrypt庫,並且 PHP 4.0 支持哈希函數。Blowfish,TripleDES,MD5,並且SHA1 也是可使用的壹些加密算法。

(10)類型檢查:PHP 4.0 支持同壹操作符用於評類型檢查:“===“( 3 等號運算符 ), 為在兩個值和其類型之間作檢查。例如,“ 3 ” ===3 將視為假 ( 類型是不同的 ), 而“ 3 ” ==3 ( 相等判斷 ) 將視為真。

(11)FTP 支持:PHP 4.0 支持 FTP 。通常, 妳會為通過壹個調制解調器連接下載壹個大文件提供壹個接口。然而, 如果妳確實有需要,可以使用PHP 。

(12)PHP4新增函數或功能增強函數:PHP 4.0 新增了許多函數,同時也將許多現有的函數功能進行了增強,以下是壹些例子。 array_count_values() eval() foreach() nclude() ob_end_clean() ob_end_flush() ob_get_contents() ob_start() strip_tags() unset()

(13)“here”打印:PHP 4.0 的“Here”打印是與Perl類似的, 盡管完全不相同。“Here”是打印大容量文章的壹個有用的方法,例如在 HTML文件中,不會漏掉任何壹個字符,例如目錄標記。

(14)HTTP Session fallback 系統:為 HTTP Session管理的壹個 fallback 系統在 PHP 4.0被實現 。缺省情況下,Session標識符由cookies存儲。如果沒有cookies支持或壹項cookies任務失敗,Session標識符自動被創建並在 URL 的查詢字符串中被攜帶。

(15)ISAPI 支持:PHP 4.0 能作為壹個個性化的 ISAPI 模塊作為 IIS插件 。這比 PHP 3.0 更有效, 它作為壹個外部的程序來運行。

(16)內存:PHP 4.0 能更有效的使用內存, 導致較少的內存占用消耗,這主要歸功於引用計數技術的實現。

(17)其他類成員函數:在 PHP 4.0 妳能在成員函數本身的作用域或全局範圍內調用其他類的成員函數。例如,妳能用壹個子函數覆蓋父函數,並在子函數中調用父函數。

(18)多維數組:在 PHP 4.0 ,利用GET,POST,Cookies的進行的數據傳輸支持多維數組。

(19)個性化的 HTTP Session支持:HTTP Session處理, 包括 fallback 系統管理,在 PHP 4.0被它的新庫函數實現 。在版本 3.0 中處理Session要求使用 PHPLIB 和第三方的庫函數, 它比把Session直接地由 PHP 支持慢了許多。

(20)個性化的 Java 支持:PHP 4.0 支持和java的交互。這種個性化的Java 支持為PHP 在 Java 對象上創建和使用方法提供壹個簡單並且有效的工具。

21)對象和數嵌套組:PHP 4.0 實現了功能更加強大的對象, 移去了 PHP 3.0存在的種種句法限制。對象能在數組以內被嵌套並且反過來也如此, 可以根據妳的需要實現嵌套。

(22)面向對象的編程:PHP 4.0 為面向對象的編程和構造類及對象提供擴展的功能和新特征。PHP4實現了對象重載,引用技術等新技術。

(23)對象重載支持:對象重載語法允許第三方的基於面向對象的類庫使用 PHP4 的面向對象的特征存取他們自身的功能。使用這個特征的壹個 COM 模塊已經被實現了。

(24)輸出緩沖支持:PHP 提供了壹個輸出緩沖函數集合。輸出緩沖支持允許妳寫包裹函數功能壓縮緩沖區。在 PHP4 的輸出緩沖支持允許 HTML 頭信息存放, 無論 HTML的正文是否輸出。頭信息( (header(), content type, and cookies ) 不采用緩沖 。

(25)增加了PCRE 庫:PHP 4.0 包括壹個 Perl 兼容的正則表達式 (PCRE ) 庫, 和正常regex庫壹起與 PHP 綁定。split 和replace PCRE 功能被支持。PCRE 和 Perl 正規表達式之間有壹些細微差別。

(26)PHP.ini 文件:PHP.ini文件在 PHP4.0 被重新設計, 使用的 PHP 的配置PHP.ini是更容易並且更有效的。全部文件能被Apache 在運行時間操作 ( 在 Apache環境 下 ) 或由 Windows 註冊表 ( 在 Windows 下面 ) 。被加入PHP.ini文件的配置指令自動地在所有相關的模塊中被支持。

(27)引用計數:PHP 4.0 為系統中的每個數值提供了引用計數, 包括資源。壹旦壹個資源不再被任何變量引用,它自動地被釋放以節省內存資源。利用這個特征的最明顯的例子壹個內置SQL查詢的循環語句。在PHP 3.0中 ,每次遞歸另外的 SQL 結果集合重復申請內存,直到腳本執行完畢,這些結果集合占用的內存才被釋放。

(28)支持引用:通過引用可以改變壹個變量的值。

(29)函數的運行時綁定:PHP 4.0 的運行時間綁定功能允許妳在他們被聲明以前調用, 無論聲明是否在代碼以後或是在運行時間。

(30)類的運行時信息:PHP 4.0 支持在運行時刻存取下列類信息:壹個對象的類名,壹個對象的父類的類名字,以及對象函數所在的名字。

(31)服務器抽象層:為支持Web服務器提供了增強型 SAPI ( 服務器 API ) 接口,是 PHP 4。0 不可分的壹部分。這個服務器抽象層,提供了通用的WEB服務器接口支持,支持多線程WEB服務器,為大多數的WEB服務器提供透明的支持, 這些服務器包括 Apache ,IIS ( ISAPI ), 以及 AOL 服務器。

(32)語法的點亮顯示:PHP 4.0 語法的點亮顯示允許開發者看見源代碼而不是腳本, 這個功能比PHP 3。0中的更有效。它跑得更快,更執行得更好,並且產生更緊湊的HTML代碼。

(33)由引用改變變量的值:PHP 4.0 由引用支持可變的賦值, “關聯”的2個變量之中個的任何壹個的值被改變,另外的變量的值同樣被改變,這類似與C中的指針類型。

(34)在引用字符串中的變量引用:PHP 4.0 增強了在引用字符串中的變量引用。例如, 這個例子在 PHP 3.0中 是不可能做到的 : print “${a[0]->bingo}“

PHP 在數據庫方面的豐富支持,也是它迅速走紅的原因之壹,它支持下列的數據庫或是數據文件:

· Adabas D

· DBA

· dBase

· dbm

· filePro

· Informix

· InterBase

· mSQL

· Microsoft SQL Server

· MySQL

· Solid

· Sybase

· ODBC

· Oracle 8

· Oracle

· PostgreSQL

而在 Internet 上它也支持了相當多的通訊協議 (protocol),包括了與電子郵件相關的 IMAP, POP3;網管系統 SNMP;網絡新聞 NNTP;帳號***用 NIS;全球信息網 HTTP 及 Apache 服務器;目錄協議 LDAP 以及其它網絡的相關函數。

除此之外,用 PHP 寫出來的 Web 後端 CGI 程序,可以很輕易的移植到不同的操作系統上。例如,先以 Linux 架的網站,在系統負荷過高時,可以快速地將整個系統移到 SUN 工作站上,不用重新編譯 CGI 程序。面對快速發展的 Internet,這是長期規劃的最好選擇。

在加入其它的模塊之後,提供了更多樣的支持如下:

· 英文拼寫檢查

· BC 高精確度計算

· 西洋歷法

· PDF 文件格式

· Hyperwave 服務器

· 圖形處理

· 加密與解碼功能

· 散列處理

· WDDX 功能

· qmail 與 vmailmgr 系統

· 壓縮文件處理

· XML 解析

除此之外,壹般語言有的數學運算、時間處理、文件系統、字符串處理、行程處理等功能,它壹樣都不缺。再加上它是免費的系統,使得成本與效益比,幾乎等於無限大!

3.3 PHP 及其語言比較

無可置疑的,寫 CGI 的方式有很多種,而 PHP 只是其中的壹種選擇罷了。對資深的網站站長來說,CGI 的寫作語言應是隨著需求而更動。畢竟,在壹個對系統反映速度要求極嚴格的系統而言,恐怕只有 NSAPI 語言寫的 CGI 程序才能符合要求了。在其它的場合,相信使用 PHP 來作為 CGI 的語言是遊刃有余,而且是最適合的。

以下是幾種語言的比較:

程序語言 PHP ASP CGI NSAPI ISAPI

操作系統 均可 Win32 均可 均可 Win32

Web服務器 幾種 IIS 均可 Netscape Server IIS

執行效率 快 快 慢 極快 極快

穩定性 佳 中等 最高 差 差

開發時間 短 短 中等 長 長

修改時間 短 短 中等 長 長

程序語言 PHP VB 不限 C/C++ C/Delphi

網頁結合 佳 佳 差 差 差

學習門檻 低 低 高 極高 高

函數支持 多 少 不定 中等 少

系統安全 佳 極差 最佳 佳 尚可

使用站點 超多 多 多 極少 少

改版速度 快 慢 無 慢 慢

其中的 PHP 可用在幾種 Web 服務器上;傳統 CGI 就不限是哪種操作系統或 Web 服務器平臺;NSAPI 壹定要在 Netscape 的服務器 (如 Netscape Enterprise Server 或 FastTrack Server) 上才可以執行,但可支持多種操作系統 (UNIX 或 Win32);ASP 及 ISAPI 只在 IIS 上有完整的功能。

在穩定性上,由於 NSAPI 或 ISAPI 是動態連結的方式,因此在執行若出現問題,會使得 Web 服務器壹起癱瘓。而 ASP 在吾人實際應用經驗上,隔陣子就會使系統不穩定,需要重開操作系統。PHP 在許多的站點使用上,不但長期使用都沒有問題,而且程序的穩定性也不錯。當然最穩的還是傳統 CGI 程序,因為它是由操作系統負責控制,不會因 CGI 程序的錯誤導致 Web 服務器的不穩定。

在開發及維護時間上,PHP 及 ASP 都有不錯的表現。而 NSAPI 及 ISAPI 則需要長時間的開發過程,在穩定上線後,這二種語言反倒是效率最佳的方法。傳統的 CGI 程序則要視開發工具語言而定了,用 Perl 或是 shell script 不需要編譯的過程,直接就可以執行,若用 Delphi 或 VC/BCB 甚至用組合語言等都要經過編譯才能執行,至於用 VB 來寫傳統 CGI,唉....。

要比較和網頁結合的能力,PHP 和 ASP 是並駕齊驅的,其它的方式就不能內嵌 HTML 語法了。而這也是影響開發時間的因素之壹。

就系統安全性而言,ASP 是最差的,在沒有經過微軟的 IIS Service Pack 處理過,使用 ::$DATA 就可以看到 ASP 的源代碼,這真是叫人不敢領教。當然,傳統 CGI 的程序,由於是由操作系統直接管理,要破解的難度最高,黑客必須由操作系統下手,而不能由 Web 服務器下手。PHP 在許多商業及非商業使用時,也沒有聽過有什麽安全的問題。

在新增功能及改版方面,傳統的 CGI 由於不受任何語言限制,沒有這方面的問題。PHP 是最有活力的,數天至數周就有壹個新版本出現,每次的新版,就代表更多的功能及更改更多的錯誤。其它的 ASP、NSAPI、ISAPI 就視它的 Web 服務器改版速度了,ASP要等到 IIS 5.0 出現時,才會有 ASP 3.0。

總而言之,在 Web 的後端 CGI 程序,就像魚與熊掌壹般,沒有高效能又開發方便的選擇。不過相信 PHP 是處於開發容易、效能亦不錯的平衡點上。

如果說ASP是壹個COM,那麽PHP說的更精確了可以說PHP是壹個純粹的Script翻譯器。這也是PHP由3.0升級為4.0的壹個重大原因,在4。0這個版本中,由於重寫了語法分析器,從而加快了PHP整體的效能。而且從中妳也就會明白為什麽PHP需要支持這種或是那種擴充功能時它壹定要與相應系統的lib庫進行再編繹的原因。正因為它是正宗的“翻譯器”,所以它是將script翻譯成為需要執行的函數,再去執行它們,外部擴充不能由壹些“動態加載”的方式進行,所以只能靜態的編繹進PHP中(這只能在windows中除外)。

  • 上一篇:柳巖參加舞林大會是第幾期
  • 下一篇:什麽是循環隊列?
  • copyright 2024編程學習大全網