什麼是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一無是處。有關兩者進一步更多的討論也沒什麼必要,使用最與你系統相容、最符合你期望的語言就是了。