什麼是PHP
PHP代表了"超文本處理器",這意味著你必須知道,它是一種服務器端的處理語言,且以HTML的形式出現。它最常用的地方就是網頁了,數據從客戶機發送到Web服務器,信息在此被處理並返回結果。
但這種通用性的語言絲毫不局限於在網頁方面,PHP也能被用在命令行shell中,它可作為操作系統的一個擴展,由此執行相應的PHP文件。
在數據庫方面的應用也是PHP的一個強項,MySQL、SQL、Microsoft Access、Oracle及InterBase只不過是采用了PHP語言的一部分數據庫。
什麼是ASP
ASP是Acitve Server Pages的縮寫,它也是一種服務器端的腳本語言,微軟公司為達到動態網頁的效果,把它集成進了服務提供者進程,就是眾所周知的COM(Component Object Models)。
盡管ASP也不只限於在IIS(Internet Information Services)服務器上運行,但只有在IIS上,才能發揮它的全部功能,最初支持它的操作系統為Windows 2000及NT4 Option Pack。同樣,ASP在除IIS之外的平台上也能運行,PWS(Personal Web Server)就能在Windows NT、95、98上解釋ASP代碼,但是,功能會有所限制。
成本問題
可能很多人都想要爭論ASP與PHP的成本問題,但這真的不是一個主要的重點所在。大多數購買IIS的用戶是為了與微軟產品的更好集成,話說回來,IIS絕對對得起這多花出去的錢。
PHP與運行它的Apache Web Server都是免費的,它們是由Apache軟件基金會提供的--安全、免費,正因為此,PHP可以免費安裝,唯一的成本是購買運行它的服務器,及安裝的時間成本。
速度問題
這個問題也是服務器端腳本語言中,雙方爭論最激烈之處,自從這兩種語言來到這個世界,這個問題的爭論就沒有停止過。
一般來說,應用程序在使用完內存之後,應把它"還給"操作系統,只要內存一直在被程序使用,操作系統通常也不會要求收回。PHP使用內存的獨特方法,使之成為了它的一個優點。PHP在得到一塊內存之後,會暫時保留住它,當內存用完後,並沒有把它還給操作系統,而保留用於接下來可能發生操作。這個可以在配置文件中進行修改。
因為基於COM的架構,所以ASP稍微慢一點,原因是它調用了對象模型,而系統又必須加載這些模型,這有點兒像那些使用了控件的編程語言。在內存消耗方面,也與標准應用程序相差無幾。
實際上,速度區別最大的地方是IIS或Apache Web Server運行於的計算機,如果計算機不同,那麼,在配置更好的計算機上的語言將運行得更快一些。
兼容性思考
說到兼容性問題,那就太多了,因為世界上沒有兩台計算機的硬件與軟件是完全相同的,正因為此,人們都想知道,在他們已擁有的設備上,程序會怎樣運作。
從這個范疇來說,PHP可能已先勝出一步了,它贏在開放源代碼方面(Open Source),這意味著它背後可能有著不計其數的開發者、更好的資源、更大的文檔庫等等。由於這些因素,PHP開發的越多,程序員學到的也越多。
ASP一般認為只能運行在IIS上,正如前面所提到的,這並不是十分正確,事實上,ASP也能運行在Apache上。Apache ASP可在任意Apache服務器上運行有限的ASP功能,所需做的,只需打開mod_perl。
要記住的是,PHP可運行在任意平台上,Mac OS X、Windows、Linux及Solaris都是可運行它的操作系統。
安全性考慮
不管安全性有多高,任何事物都存在被攻破的可能,唯一缺乏的只是時間與資源的問題。
Apache的安全選項使它比Windows Server操作系統更具安全性,IIS已有很多已知的安全漏洞,且一直在進行修補;相比而言,Apache的安全性可是有目共睹的。
編程易學性
ASP來源於微軟產品中最常見的語言--Visual Basic,所以,它非常簡單易學;而PHP更多地以C++語言為基礎,這可能也是它速度快的一部分原因吧。
ASP的一般性誤解
ASP與ASP.NET完全不是一種東西,ASP.NET是對ASP編程語言的一次徹底重寫,正因為此,它的大部分功能是不能向後兼容的,它適合於微軟更新的 .NET架構。
結論
從個人的角度來看,PHP更快、更安全、更易於使用、兼容性更高,甚至更便宜,但也並不是說ASP一無是處。有關兩者進一步更多的討論也沒什麼必要,使用最與你系統兼容、最符合你期望的語言就是了。