PHP3程序設計 之一

火星人 @ 2014-03-12 , reply:0


  綜述
第一章「什麼是PHP?」描述了什麼是PHP,怎樣將它與Apache Web伺服器集成在一起,以及它能完成什麼樣的任務。

第二章「安裝PHP」,講述了如何編譯MySQL資料庫,如何將PHP編譯成支持ODBC,XML,模式匹配和MySQL資料庫的Apache Web伺服器模塊。

下兩章篇幅集中講述 PHP編程語言的技術細節。

第三章「PHP中的數據處理」,介紹變數,數字和操作符。

第四章「程序控制」,介紹表達式、語句和函數。

第五章「中場一:連接資料庫」,通過使用PHP連接MySQL資料庫,顯示出PHP編程語言的前景。

第六章「資料庫和SQL」所介紹內容的序曲,第六章中介紹了資料庫的基本概念,如表、記錄等。此外,第六章也討論了數據定義和數據處理語言,即SQL(結構化查詢語言)。

第七章「中場二:處理列表」,介紹了如何使用PHP和SQL維護一個月名的資料庫表單。

第八章「phpMyAdmin:開放源碼的MySQL前端」介紹了一個源代碼公開的應用程序,它能提供查閱、改變任一個MySQL資料庫的能力。

第九章「模式匹配」和第十章「面向對象」,討論了PHP語言的更深層次的技術細節。模式匹配指的是查找和替換文本的一種功能。面向對象的編程將數據和函數存儲在一起。事實上,面向對象的編程比這裡的簡單定義要複雜得多,詳細內容將在第十章中講述。

第十一章「中場三:創建HTML模塊」,本章暫時從技術術語的介紹中解放出來,而發展了一種從PHP腳本內部顯示HTML的方法。

以下幾章又返回到了更進一步的教學模式,

第十二章「什麼是CGI?」講述了Web伺服器和回應瀏覽器請求的應用程序之間關係的基礎。雖然PHP(本書中的)是Apache Web 伺服器集成的一部分,它也遵守CGI標準。

第十三章「驗證口令」講述了如何更好地了解你的Web站點的訪問者。最基本的有效技術是讓訪問者輸入用戶代碼和密碼以驗證用戶身份。

第十四章「深入了解SQL」更深一步地講述了SQL。這裡不僅講述了表之間不同的關係,而且也講述了完整性的概念。

第十五章「中場四:處理併發訪問」使用PHPLIB模塊來驗證用戶,並防止多個用戶在同一時間內改變同一條記錄。

第十六章和第十七章講述了XML。首先,第十六章「XML」較詳細地介紹了XML和HTML之間的區別和相似。該章也講解了文檔類型定義(Document Type Definition、DTD)。第十七章「用PHP處理XML」講述了如何分析XML(即,如何讀取和解釋XML標記),並如何把XML內的信息移到PHP變數中。

附錄A「Internet 資源」,列出了幾種不同類型的Internet資源,如郵件列表和Web站點。附錄B「ASCII表」,列出了所有的ASCII代碼及其對應的字元。附錄C「SQL參考」,為SQL語句、操作符、函數的簡明清單。附錄D「PHP函數清單」,以字母表的順序列出了大部分的PHP函數。附錄E「CD-ROM中的內容」簡單說明了隨書附送的光碟中的內容。

第一章 什麼是PHP?
PHP是編程語言和應用程序伺服器的結合。PHP和其它的編程語言類似,使用變數存儲臨時數值,使用操作符處理變數。PHP的真正價值在於它是一個應用程序伺服器。

當談到應用程序伺服器的時候,我是指一個把幾個不同的技術組合為一個完整的套件的程序。這些技術包括:

* 一個強壯的編程語言。

* 存取資料庫中存儲的數據。

* 支持 Internet協議,尤其是電子郵件和HTTP協議。

注意:應用程序伺服器有許多其它的特性,這裡只列出了最基本的特性。

由於提供了這些多種不同技術的前端介面,PHP可以使工作變的很容易。

本章的其它部分講述了有關PHP的許多繁雜資料,以及它在應用軟體開發中起到的作用。

1.1 起源

PHP是由Rasums Lerdorf創建的,它開始是一個簡單的用Perl語言編寫的程序,用來記錄Rasums Lerdorf自己在線簡歷的訪問者。以後它又被用C語言重新寫過,範圍擴大到訪問資料庫。在這期間,有許多人向Rasums Lerdorf要此程序的拷貝,以便自己使用。Rasums Lerdorf為此寫了一些介紹此程序的文檔,併發布PHP v1.0。以後,越來越多的人開始使用PHP,並強烈要求增加一些其他的特性,如循環語句和數組變數等。到這時,其他的一些程序員也開始參與PHP源碼的編寫(主要有Zeev Suraki和Andi Gutmans),很明顯,此時的PHP為了以後的發展,必須重新編寫。因此,PHP v3.0就出現了。

1.2 特性

PHP的特性包括:
* 開放源碼 -- 所有的PHP源碼都可以得到。事實上,所有的源碼都包含在隨書附帶的光碟中。
* 沒有運行費用 -- PHP是免費的。
* 基於伺服器端 -- 由於PHP是在Web伺服器端運行的,PHP程序可以很大、很複雜而不會降低客戶端的運行速度。
* 跨平台 -- 雖然本書是以Linux為重點介紹的,但PHP程序可以運行在UNIX,Linux,或者Windows操作系統下。
* 嵌入HTML -- 因為PHP語言可以嵌入到HTML內部,所以PHP很容易學習。
* 簡單的語言 -- 和Java和C++不同,PHP語言堅持以基本語言為基礎,然而它的功能也強大到足以支持任何類型的Web站點。
* 效率高 -- 和其它的解釋性語言相比,PHP系統消耗較少的系統資源。當PHP作為Apache Web伺服器的一部分時,運行代碼
不需要調外部二進位程序,伺服器解釋腳本不需要承擔任何額外負擔。
* 分析XML -- 用戶可以組建一個可以讀取XML信息的PHP版本。
* 資料庫模塊 -- 用戶可以使用PHP存取Oracle、Sybase、MS SQL、Adabase D、MySQL、mSQL、PostgreSQL、dBase、
FilePro、Unix dbm、Informix/Illustra等類型的資料庫,以及任何支持ODBC標準的資料庫。
* 文件存取--PHP有許多支持文件存取函數。
* 文本處理--PHP有許多函數處理字元串,其中包括模式匹配的能力。
* 複雜的變數--PHP支持標量、數組、關聯數組等變數,這給用戶提供了以支持其它的高級數據結構的堅實基礎。
* 圖象處理--用戶可以使用PHP動態的創建圖象。
* 更多的其它功能!

1.3 PHP需要花費多少錢?

PHP是免費的。所有的源碼、文檔都可以免費的複製、編譯、列印和分發。用戶的任何一個用PHP編寫的程序都屬於用戶自己,可以按照自己的意願進行處理,而不需要付任何版稅。就PHP本身而言,用戶可以無限制地發布自己編寫的程序。

然而,有著很充分的理由,PHP並不是徹底的「公共領域」代碼。如果PHP源碼是完全的公共領域代碼,很可能就有人對PHP的源碼做很小的修改,然後編譯並出售--換一句話說,從它的創作者中脫離出來。但從另一方面說,如果不公布源碼,很難使想使用它的用戶感到放心。

GNU通用公共許可是一種發布免費軟體的方法,它可以避免其他人佔有你的勞動成果。在符合GNU許可的條件下,源碼可以自由地發布,並且任何一個人都可以使用,但是任何來源於此代碼的程序必須以同樣種類的許可方式發布。換句話說,如果用戶從任何GNU許可下的源碼中得到代碼而編寫自己的程序,用戶必須給任何想得到源碼的人共布自己的源碼。

1.4 PHP語言可以嵌入HTML中

當使用者使用經典程序設計語言(如C或Pascal)編程時,所有的代碼必須編譯成一個可執行的文件,然後該可執行文件在運行時,為遠程的Web瀏覽器而產生可顯示的HTML標記。但另一方面,PHP並不需要編譯(至少不編譯成可執行文件)。使用者可以把自己的代碼混合到HTML中。例如,下面的代碼將顯示「Hello,world!」,PHP代碼在下面以黑體字顯示。

〈HTML〉
〈HEAD〉〈TITLE〉Test〈/TITLE〉〈/HEAD〉
〈BODY>
〈?PHP $string = 'world!'; ?〉
〈H1〉Hello,〈?php echo $string ?〉〈/H1〉
〈/BODY〉
〈/HTML〉

PHP應用程序伺服器(本書的主要寫作目的)是緊密集成到Apache Web伺服器中的,可以在一個程序內同時調用它們兩個。當Web瀏覽器請求PHP Web頁面的時候,Web伺服器的PHP部分將被調用進行解釋。Web伺服器在請求的Web頁中尋找標記,並按要求執行這些PHP代碼。由PHP代碼生成的輸出將替代標記。例如,當PHP代碼運行后,以前的Web頁面將變成如下所示的內容:

〈HTML>
〈HEAD>〈TITLE>Test〈/TITLE>〈/HEAD>
〈BODY>
〈H1>Hello,world!〈/H1>
〈/BODY>
〈/HTML>

注意,所有的PHP代碼都消失了,僅僅留下了HTML語句。而由PHP代碼生成的HTML語句在上例中以黑體的形式顯示。

1.5 PHP語言是在Web伺服器端運行

當開發互聯網應用程序時,很重要的一點是要清楚應用程序是在哪一端運行的。PHP總是運行在伺服器端。不要嘲笑對這一點的強調。在以後考慮對應用程序某些特性進行規劃時,有的人可能就會在應用程序在哪裡運行的這個問題上搞錯,不要讓自己也成為這些人中的一個。

由於Java applets,ActiveX,或Javascript 都是運行在客戶端的Web瀏覽器中的,因此PHP不能直接和它們進行比較。然而可以很容易的將這些語言與PHP相結合在一起,使用PHP可以很方便地生成所需要的任何HTML代碼,當然也就能激活Java applets和ActiveX控制項,還可以動態生成Javascript語句。當對互聯網應用程序開發還很陌生的時候,這也許沒有什麼意義,但是在讀完這本書後,這一切就會變得十分清晰的了。

1.6 PHP無處不在

無處不在是常使用的充滿激情的詞語,到1999年7月,將有60萬左右的Web站點使用PHP,1999年夏天有關Linux和開放代碼運動的大發展很可能使PHP團體有突破性發展。可以在http://www.php.net/usage.php3站點上看到它的發展趨勢圖表。

此外,PHP郵件列表每天能收到大約80個電子郵件,每個月能收到大約2500個電子郵件,這說明PHP是一個非常活躍的開發團體。使用PHP的商業公司有以下幾個,Mitsubishi Motors、Volvo、Red Hat Software、E*Trade、First USA Bank、the San Francisco Giants和San Diego Zoo等等。

1.7 PHP和C或Java相似嗎?

PHP程序和C程序有略微相似的地方,這是由於PHP來源於C、Perl和Java。一些對C語言來講比較麻煩的方面(如處理字元串的技術),由於採用了和Perl相近的技術,在PHP中就不再是麻煩了。PHP中也不包括Java中的一些面向對象特性。

PHP能很好地處理某些低級的任務,如果代碼需要運行的特別快,可以很方便的使用C為PHP程序編寫模塊。

1.8 PHP比ColdFusion、Active Server Page或Java Server Page更好嗎?

以流行的商議方式,我總是回答,「可以是,也可以不是」。

回答是,是由於它的費用(免費)以及可以通過郵件列表、IRC而在世界範圍內有廣泛的支持網路。同時PHP還在不斷地發展著,如果想要一個PHP現在沒有的特性時,請等待幾個月,就有人很快為PHP編程而加上此種特性。

回答不是,是由於商業軟體有比PHP更多的特性。例如,Allaire's ColdFusion有一個已證實可靠的搜索引擎組件。微軟的Active Server Page技術提供了與Outlook、電子郵件和工作組程序相結合的能力。Java Server Page讓使用者可以使用互聯網上的大量開放源碼模塊。

1.9 總結

對於遍及互聯網上的PHP,本章僅僅簡要提到了它的一些特性,本章也介紹了當設計互聯網應用程序時,PHP為什麼是最好的編程工具之一的原因。

下一章「安裝PHP」將一步一步的介紹了PHP的編譯過程、安裝過程以及測試過程。




[火星人 via ] PHP3程序設計 之一已經有144次圍觀

http://www.coctec.com/docs/program/show-post-72473.html