PHP5完全攻略

PHP5完全攻略

《PHP5完全攻略》是2010年5月1日電子工業出版社出版的圖書,作者是杜江。本書完善地描述了PHP 5的開發特性與MySQL 5資料庫。

內容簡介

本書是目前第一本真正介紹PHP 5及MySQL 5新增語法與功能的中文版本權威寶典!

本書本著精、全、要三宗旨,從理論中延伸,從實踐中深入,翔實並完善地描述了PHP 5的開發特性與MySQL 5資料庫。本書分為兩大部分,第1部分主要闡述PHP開發的基礎知識,如PHP數組與表單處理、PHP 5面向對象開發、Ajax、CLI、字元流處理、加密技術、圖片處理及PHP代碼最佳化,以及存儲過程、游標、事務等進階內容;書中第2部分的開發實例是作者開發的原創作品,該部分內容不僅會令讀者的開發水平有所增進,而且可在案例的基礎上進行二次開發,做出符合自己業務的網站系統。

本書既可作為初學者或剛剛從其他語言轉做PHP開發的程式設計師和軟體工程師的學習參考書,也可作為掌握PHP 5的進階套用及高級知識的案上學習指南。

圖書目錄

第1部分 PHP 5基礎

第一篇 PHP 5基礎知識

第1章 PHP 5概述

第2章 PHP 5開發基礎

第3章 正則表達式

第4章 PHP數組

第二篇 PHP 5核心套用與規範

第5章 表單——處理用戶輸入

第6章 PHP加密技術

第7章 PHP國際化與本地化

第8章 PHP開發規範

第9章 PHP 5面向對象開發

第10章 PHP會話管理

第11章 PHP輸入輸出緩衝

第12章 檔案系統與字元流

第三篇 MySQL 5與PHP 5接口

第13章 WEB資料庫設計

第14章 MYSQL 5資料庫

第15章 MYSQL資料庫

第16章 PHP與MYSQL

第17章 PHP資料庫抽象層

第四篇 PHP 5進階與技巧

第18章 SMARTY與模板技術

第19章 PHP和AJAX技術

第20章 使用PHP編寫SHELL

第21章 PHP網路開發

第22章 PHP檔案上傳

第23章 圖片與媒體處理

第24章 XML與RSS

第25章 WEB服務與SOAP

第26章 PHP與WAP技術

第五篇 PHP 5調試、升級與最佳化

第27章 錯誤與異常處理

第28章 升級到PHP5

第29章 PHP最佳化技巧

第2部分 實戰PHP5

第30章 實例開發:會員

第31章 實例開發:

第32章 實例開發:愛問系統

第33章 實例開發:多用戶

附錄A PHP線上資源

附錄B Zend Core安裝

附錄C PHP擴展開發

附錄D MySQL字元集與整理

附錄E 代碼頁與Charset對照表

附錄F php.ini配置詳解

附錄G HTTP返回代碼表(RFC2068)

前言

誰適合閱讀本書

您了解PHP嗎?您不必是PHP大師,當然您也許只是一個初學者。

您想學習Web腳本語言嗎?

您想了解Web開發的最新趨勢及Web 2.0的最佳技術組合嗎?

讀書的最高效率是在五分鐘內決定該書是否具有閱讀價值,相信本書會在五分鐘內得到您的肯定!

寫作背景

從2000年開始,我一直從事Web和B/S系統的架構設計與開發工作,主要開發工具為PHP、Perl和Java,一路走來的10年也正是與中國網際網路與軟體產業共同成長的10年。

最早開始接觸PHP 3,是從正式做一個Webmarky項目開始的,從那時起我便與PHP結下了不解之緣。那時,PHP還不支持Session,執行效率也不高,這也是當時用Perl開發項目的原因。PHP 4.0正式推出後,這些問題便得到了很好的改善。由於PHP輕巧易用,我便愈發喜歡這門腳本語言了。

2004年,PHP 5 Beta版全新推出。2006年,第二次網際網路大潮再次湧來,Web 2.0技術開始流行,PHP的良好性能與速度愈發顯示出它對於開發網站的先天優勢。技術發展越來越快,而網際網路上浩如煙海的資料良莠不齊,太多的中文重複資料讓人無所適從,越來越多的朋友需要一本詳細可靠的參考書籍。

從教學角度上看,大多數學校採用的是Visual Basic或Java進行計算機相關的教學。Visual Basic作為面向對象的教學略顯過時,從技術上而言,大部分開發是對Visual Basic類的使用,而自定義開發的類和模組並不多。Java的缺陷是學習難度大,而中國大部分高校的教師並無實際開發經驗,導致學用脫節。而PHP則更適合自學,或者說學習起來更容易,美國哥倫比亞大學等高等院校已率先在大學裡開設了PHP課程。

從社會需求上看,Yahoo!、百度、新浪、搜狐、TOM、騰訊、盛大、金山等大型網際網路公司都在使用PHP,各大軟體公司和以外包業務為主的公司的PHP項目也與日俱增,因此對PHP工程師和相關技術管理者的需求尤為突出。作為PHP的商業公司——Zend技術公司,其PHP工程師認證正在全球普及,而在中國,迄今還沒有出現一位Zend Certification Engineer,因此機會與挑戰並存。

從開發人員角度上看,Web 2.0的大潮讓PHPer亦日漸增多,但絕大多數都是各自為戰,有一部分人在開發上缺少規範,代碼編寫略顯粗糙,資料庫設計也不盡如人意,因此可以說多數人尚屬於PHP fans狀態。

寫作目的

縱觀市面的PHP書籍,數量不多,除了一些國外譯本,國內大部分為基礎的入門書籍,有的表面雖寫的是新版本內容,其實是新瓶裝舊酒,講授的仍是PHP 4.0或過時甚至於錯誤的知識,這對讀者是個誤導,長此以往,每個學習者都在作者的引導下重複製造著低級的車輪,對中國PHP開發層次的提高也是一個障礙。

另外一個更重要的原因是,2007年7月PHP官方已正式向業界宣布,以後將不會有更多關於PHP 4軟體版本的發布信息,關於PHP 4的技術支持和安全修復工作將正式結束。這表示PHP 4的使命已經終結,因此PHP 5的普及與套用已經勢不可擋,開發者將知識與套用全面轉向到PHP 5已勢在必行。

基於以上原因,我決定編寫本書,讓讀者不再是簡單地模仿與學習枯燥的理論,使初學者能少走彎路,對具有一定開發經驗的讀者授之以漁,並使這部分讀者能掌握一些技巧。

為了使讀者不陷入枯燥的理論,書中本著全面、實用、有效、最佳化、啟發之原則,提供了豐富的腳本範例,並已經調試無誤。

本書內容

本書是《PHP 5與MySQL 5 Web開發技術詳解》的升級版,也是一本真正介紹PHP 5與MySQL 5 新增語法功能的中文版本權威寶典!

本書假設您有一定開發基礎或懂一些語言知識及一些HTML網頁的基本知識,除了會照顧一些初學者或剛剛從其他語言轉來做PHP開發的程式設計師和軟體工程師外,在書中您還可以掌握到PHP的進階套用及高級知識,例如,PHP 5面向對象和反射API、ADODB/PDO的資料庫抽象層、Smarty模板,Ajax技術、XML和RSS/Atom技術、Web Service、PHP最佳化與快取、負載均衡技術等。另外也為您詳細講解了資料庫的設計、MySQL 5資料庫系統的套用和維護最佳化技術。

.本書除了在技術內容方面有獨到之處以外,更結合了作者豐富的開發經驗,內容深入淺出,無論是初學者或者想要得到進階知識的開發者,皆可從本書獲益良多。

本書本著精、全、要三宗旨,從理論中延伸,從實踐中深入,實踐證明此種學習效果最佳。我結合了使用PHP進行軟體開發的管理經驗,將PHP學習過程中語法功能與實際案例結合的方法,因此特別以項目開發的方式來進行說明,最符合實際需要,讓您即學即用,迅速成長為PHP開發高手。

書中第2部分的開發實例是我開發的原創作品,有一部分內容可供讀者借鑑,並可以在案例的基礎上進行二次開發,請您儘量在承繼文章的基礎上深入思考,在本書內容中找到自己所悟,總結自己的理解,開發更完善的軟體產品,進而升華編程境界,提高技術素養。

您可以根據自己的實際情況,選擇從頭至尾閱讀,也可以將本書作為案頭的解決方案參考書。

本書特點

(1)內容由淺入深,不管是初學者還是想要得到進階知識的讀者,皆可從本書獲益。

(2)PHP 5.3 & MySQL 5.1新功能完全解密!本書是目前市面上第一本真正介紹PHP 5特色和實用技巧的相關書籍。

(3)涵蓋MySQL 5的新增功能,例如,存儲過程、游標、事務等功能。

(4)闡述Ajax、PHP加密技術、圖片處理及PHP代碼最佳化等進階內容。

(5)本書後半部分包括一個大型項目(包括愛問系統、用戶管理系統、多用戶部落格日誌系統、群組圈子系統),內容完整精要,單是示例原始碼內容就已經超過本書價值。

特別感謝

寫點東西非常不容易。

首先要感謝我的母親,我寫這些文字的時候,在疲憊時就會想起她的操勞,想在這裡說,媽媽,您辛苦了。

感謝我的親人,因為你們,我在北京沒有感到缺少親情的孤獨。

感謝那位女孩子,她鼓勵我要有攀岩者的自信樂觀,還要有良好的道德與心理素質,要成熟,要堅強。沒有她的這番話語,我可能無力完成這本著作,我這顆容易衝動的心有時容易向左向右;有了她,生活便是有意義的。

感謝電子工業出版社的楊福平副總編和朱沭紅編輯,還有在曾經的日子中並肩戰鬥的朋友,在你們的鼓勵下,才使本書得以完美地展現給各位讀者朋友。

感謝PHP這個開放的大社區,讓我們相識並走在一起,願與各位同仁共同進步,為PHP在中國有更大的傳播和發展貢獻自己的一份力量。這就是本書的緣起,也是我的初衷。

本書由杜江主持編寫,另外參與本書編寫的還有杜海、王盛、申敏、孫愛紅、李在松、王平、李大海、鄧小軍。

與您溝通,傾聽您的心聲,感受您的評論,接受您的意見,您的每一句啟發與批判都是對我莫大的獎賞與財富。

今日的學習為明天的挑戰準備,願本書真正能為您提供動力,與您共勉,祝您成功!

序言

讀著杜江先生的新作,讓我想起了十幾年前,在我所服務的公司——美國Yahoo!總部的一些經歷。那時候,還是網際網路的迅速發展階段,Yahoo!還是個不到一千人的新興公司,正從各地招兵買馬,壯大充實,以和當時的勁敵美國線上、Lycos等力拚。在早期網際網路公司鬆散的管理下,各個部門各自為政,除了作業系統基本上是FreeBSD,Web Server主要是Apache以外,其他就要看各部門主力工程師的個人偏好了,於是百花齊放,Perl、C/C++、Java都有人用,更有Yahoo!內部開發的所謂HTML Forms和HF2K的腳本語言。我那時候負責Yahoo Everywhere部分開發及全球部署工作,職責就是把Yahoo!的各種服務WML化,讓人們在世界各地用手機上網也能輕鬆享用Yahoo!的各項產品。那時,除了和電信運營商、手機廠商打交道,最多的時間就是花在和Yahoo!內各部門的工程師協調、合作,以及了解、銜接他們的系統。

相比之下,現時的網際網路工程師是比較幸運的。基本上,開發一個網站項目,在工具、架構的選擇上已是沒有什麼懸念,除了微軟或Java那一套,就是所謂的LAMP(Linux、Apache、MySQL、PHP)模式了。畢竟這個模式不但完全免費,而且身經百戰,被Yahoo!、新浪等大型網站廣為採用。還記得當年(應該是2001年吧),雅虎美國總部為了整治公司內部系統的混亂,彌補自身腳本語言的不足,為長期持續的發展建立可以持續的基礎,很明智地在公司各部門統一推廣使用PHP。這一舉措也為PHP日後的壯大起到了一定的推動作用。

不過,也因為這樣,在前人的努力累積的碩果上,再加上網際網路搜尋信息快速方便,養成了許多工程師的惰性。這個現象在中國感覺尤為嚴重。有了LAMP的架構,又隨時可以搜到各種問題的開源解答,許多工程師或管理人員就把網站建設不當回事,也不深究,不求甚解。要知道,要把一個網站搭建起來,的確可以是一個很簡單的事,但是,要做大,要做好,要做到英文裡各種所謂“bilities”(maintainability、flexibility、extensibility、availability、reliability、scalability)的境界,很多東西是要深入了解、細細琢磨的。這就是為什麼我常強調,希望我的合作夥伴都是“工程師”,而非簡單的“程式設計師”。

杜江先生就是我曾共事過的高級工程師之一。他寫的這本《PHP 5完全攻略》可以說同時兼顧到了“工程師”和“程式設計師”兩種讀者的需求。

這本600多頁的參考書既有許多針對日常會遇到的問題、案例,提供可直接套用的答案,又有深入、循序漸進的描述,解析了PHP 5及MySQL 5的技術細節,是一本值得推薦給所有以PHP、MySQL為基礎搭建網站的工程師與程式設計師的好書。

孫至俊

——寶寶樹首席技術官(前雅虎一拍網CTO/愛康網CTO)

相關詞條

熱門詞條

聯絡我們