3.2在Windows 95/98/NT/2000上快速安裝Apache Web服務器(10秒鐘) 在Windows上運行PHP,你需要一個Web服務器,你可以使用微軟的IIS,也可以使用免費的Apache 。因為可以通過Apache的安裝文件setup.exe進行安裝,可以為你節省許多時間。 PHPTtriad是一個包括Apache、PHP、MySQL的軟件包,可從http://www.phpgeek.com/phptriad.php 或其鏡像站點http://sourceforge.net/projects/phptriad下載。我強烈推薦使用PHPTtriad,它在Windows用戶中極受歡迎(已被下載了幾百萬次)。 Apache 二進制程序: http://httpd.apache.org/dist/httpd/binaries/win32 3.3 微軟的SQL服務器 SQL服務器可以安裝在不需要運行Windows的機器上,而你也需要一個SQL服務器來作Web開發。我推薦你在很老的PC上(如Pentium或486)安裝Redhat Linux和PostgreSQL RPMs。你數據庫並不需要任何Windows圖形界面,可以在控制台直接啟動PostgreSQL。PostgreSQL的速度大概是Oracle和MS SQL server的3倍。 PHP的PostgreSQL支持庫是由Adam Sussman編寫的,他的郵件地址是:[email protected] 支持Windows NT/2000的PostgreSQL可從http://www.askesis.nl下載。可從http://www.geocities.com/alavoor/HOWTO/pgsql/PostgreSQL-HOWTO.html獲取PostgreSQL的使用指南 。 3.4 PHP在UNIX和其它操作系統上的安裝 參見PHP主站點www.php.net上的安裝指南和說明,或所下載的軟件包中的INSTALL文件。 4.快速進階 用PHP的面向對象機制實現一個項目的步驟如下: ·首先,你需要連接一個數據庫SQL服務器——有下面兩個選擇: ADODB (Active Data Objects Data Base),即動態數據對象數據庫(http://php.weblogs.com/adodb) Metabase(Database independent access and management),即數據庫獨立訪問和管理( http://phpclasses.upperdesign.com/browse.htm/package/20) ·第二,你需要一些通用的PHP類來創建表單、表格和其它HTML對象。這些都可以從PHP classes網站上獲取(http://phpclasses.upperdesign.com)。可以參考一下該網站的下載排行榜。也可以從網站http://www.milkywaygalaxy.freeservers.com/上獲取表單類、模板類等。 ·第三,通過對這些通用類的繼承,來設計和創建自己的PHP類。 ·第四,使用模板類來分離顯示樣式和業務邏輯,可參見http://www.phpclasses.com ·第五,使用IDE工具進行開發(參見PHP IDE一節)。 ·最後,最好把你代碼封裝成類,這樣可以實現代碼的易維護性和可重用性。 5.PHP的主要特性 ·支持標准CGI,FastCGI和Apache模塊——作為一個標准的CGI程序,PHP可以安裝在運行任何Web服務器的任何UNIX機器上。 PHP支持新的FastCGI標准,通過這一機制,PHP獲得了速度上的提高。 當配置成Apache模塊時,PHP便成了功能極為強大的,運行速度如閃電般快的新的選擇。 ·訪問日志——通過PHP的日志訪問功能,用戶可以維護他們的點擊次數和日志。 該功能提供了實時的訪問監測,而不以任何方式使用系統的中心訪問日志文件。日志浏覽腳本為個人用戶擁有的一組頁面提供快速的訪問摘要。除此之外,該程序包還可以通過配置為每一個頁面生成一個頁腳(footer)來顯示訪問信息。可參考文章後面的例子。 ·訪問控制——個內建的基於Web的配置“篩”,可實現對訪問控制的配置。這樣,才有可能為所有或部分Web頁面創建一套規則,使得擁有這些頁面的特定的人可以對他的網頁設置各種限制,如,什麼人可以訪問這些頁面以及這些頁面以怎樣的一種方式被訪問。對頁面的設置有許多方式,如密碼保護、完全限制、登錄失效、或者更多的以客戶的域、浏覽器、e-mail地址甚至涉及的其它文檔為設置依據。 ·支持PostgresSQL——PostgresSQL是一個先進但是免費的RDBMS(關系數據庫管理系統)。PHP支持在.html文件中直接嵌入PostgresSQL的“SQL 查詢語句”。 ·支持RFC-1867文件上傳——文件上傳是Netscape2.0新增的一項功能。用戶可以將文件上傳到Web服務器。 PHP提供了實際的MIME解碼功能,使得文件上傳成為可能。PHP還提供額外的框架,可對收到的上傳文件進行一些有用的處理。 ·基於HTTP的身份驗證控制——PHP可以用來為Apache服務器創建自定義的基於HTTP的身份驗證機制。 ·變量、數組,聯合數組(associative arrays)——PHP支持typed(這個單詞不知道怎麼譯,望高手指點)變量,數組,甚至Perl風格的聯合數組。而這些都可以通過GET或POST方法的表單從一個頁面傳遞到另一個頁面。 ·條件語句、While循環——PHP是一種類似C語言的功能完整的腳本語言。你可以使用if/then/elseif/else/endif條件語句,以及While循環和Switch/case語句來安排HTML頁面顯示的邏輯流程。 ·擴展的正規表達式——正規表達式頻繁地應用於模式匹配、模式替換以及一般的字符串操作。PHP支持所有常用的正規表達式操作。 ·原始的HTTP Header控制——根據某種條件,讓Web頁面能夠發送自定義的原始HTTP頭對一些高級的網站設計來說是非常必要的。一個常見的用法就是發送一個Location:URL頭,把客戶端的請求重定向到另外一個URL上。也可以用來關閉緩存或操作頁面最新更新的HTTP頭。 ·動態創建GIF圖片——PHP已經支持Thomas Boutell的GD圖片庫,可以實現GIF圖片的動態創建。 ·支持ISP“安全模式”——PHP支持獨特的“安全模式”,從而使得多個用戶運行同一台服務器上的PHP腳本變得更加安全。 ·新發布的PHP中又增加了許多新的功能。可訪問PHP的主站點http://www.php.net。 ·PHP是免費的!——這是最後一個重要特色。PHP的程序包是完全免費的。它遵守GNU/GPL。你可以把這個軟件用於實現商業或者其它任何目的。 5.1 PHP相對於Java的優勢 PHP是一種已經確定下來的,用於創建動態網頁的服務器端的腳本語言。作為一種為Web而特別設計的語言,PHP帶來了許多商業機構渴望的特性。 ·極短學習周期 ·快速的開發時間 ·非常高的性能 這對於缺乏熟練編程人員,時間又非常緊迫的公司來講,具有非常重要的意義。PHP可以在所有主要的操作平台(UNIX,Windows,甚至是大型機)上運行,而且生來就支持各種流行的數據庫。所有這一切決定它是一種進行Web開發的非常理想的選擇:曾有運用PHP技術的網上商店稱,他們只需雇傭業余的程序員,幾天內就能夠開發出可重用的代碼。那些熟悉諸如C,C++或Java等語言的程序員們,也總是發現他們能夠在幾個小時之內就能夠進行PHP編程。 PHP是針對Web開發而設計的,這一事實使它成為一種獨具特色的開發工具,就象Intranet Design雜志評價的那樣: “PHP是構建在Web開發人員現實需求之上的....不同於其它笨重的,高負荷的方法,PHP非常輕便,是為Web開發度身定做的。它可以比其它同類技術更快,更容易的解決復雜的問題。” Java作為一種新的編程語言,最初用於運行嵌在浏覽器中的客戶端應用程序。在過去短短幾年中,“applet”所暴露的問題迫使SUN和其它Java開發人員為該語言尋找新的出路。其中最為突出的就是服務器端編程,它允許Web站點連接數據庫並產生其它服務器端的應用程序,即“servlets”。SUN最終推出了Java Server Pages(JSP)作為編寫servlets的手段。與PHP一樣,JSP在不同平台間也具有高可移植性(盡管PHP支持任何32位以及32位以上的平台,而JSP只能在安裝了Java虛擬機的平台上運行)。 然後,一個沒有編程背景的新手會發現,使用servlets編程是一件極為困難的事,原因在於該語言的復雜性以及JSP系統復雜的設計方式。 JSP的性能也存在許多待改進的地方:ZDnet的在線刊物eWeek最近的一項調查發現,PHP的運行速度差不多是JSP的3.7倍。可以說,JSP是Web環境中非常差的一種解決方案,這是因為它每秒鐘只能處理很少的事務,而且響應速度相當的慢。 ZDnet的eWeek雜志還提到: “JSP是一項相對較新的技術,從開發工具、資源、人才方面來看,還未具有完全的市場成熟度。”......由於JSP是基於Java的,而Java由是一種強類型的語言,所以我們不得不聲明變量的類型,並在需要的地方手工轉換類型。這使得JSP成為業余程序員最難於學習的一種腳本語言。 PHP與Java協同工作 JSP僅僅是一種能夠訪問Java對象的語言罷了,認識到這一點很重要。而PHP也可以整合Java,這意味著,PHP可以象JSP一樣,成為一種能夠調用Java邏輯的腳本語言。但與JSP不同的是,PHP還可以調用其它組件模型,如Microsoft的COM,而且增加對新的對象模型的支持也極為容易。可見,PHP的擴展能力是無窮的。而另一方面,JSP完全依賴於Java。 IBM程序員Sam Ruby聯合使用PHP和Java。通過PHP對Java的良好支持,使得Java對象如同常規的PHP對象一樣,透明地被創建和使用。 AutionWatch網站使得各種規模的商業團體都可以從其動態競價環境中獲益。它每月的訪問人數在二百六十萬以上;已有三十多萬個注冊用戶;每個月進行一百二十萬次拍賣。 他們曾嘗試使用Java,但還是選擇了PHP,就因為它更容易使用,開發速度更快。若想知道的更多,請聯系Ben Margolin,他是AuctionWatch網站銷售服務部的主任([email protected])。 編程顧問Reuven Lerner曾在各種語言之間作過比較。他對PHP的看法概括如下: “這是門容易學習的語言。美工和Web設計師可能會說他們並非程序員,但事實上,他們在大型項目中,越來越多的使用了JavaScript,VBScript以及其它一些簡單的編程語言。與Perl相比,PHP更加正規和明確;對一個新手來說,PHP比Java更容易掌握。確實,PHP有點象JavaScript(如果存在服務器端版本的話)。任何人,不管有無編程經驗,都可以在很短的時間裡學會並使用PHP。這一點也許VBScript可以做到,但Perl和Java肯定不行.....PHP絕對是一個非凡的,強大的系統。無怪乎能夠成為創建Web站點的流行語言.....我認為,PHP將成為Java和JSP強有力的競爭對手,我會在某些客戶和公司內部項目中極力推薦PHP。” PHP:一直在前進 JSP有Sun作為其後盾,因此不斷獲得媒體的關注。但有趣的是,盡管沒有任何宣傳攻勢,PHP的流行度仍然以8-11%的速度在增長,遠遠大於服務器端應用程序4%的月增長率。有六百五十萬個站點使用了PHP(參見Net