-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

細說PHP(第4版)

( 簡體 字)
作者:高洛峰類別:1. -> 程式設計 -> 網路編程 -> PHP
譯者:
出版社:電子工業出版社細說PHP(第4版) 3dWoo書號: 51578
詢問書籍請說出此書號!

缺書
NT售價: 790

出版日:7/1/2019
頁數:728
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121370625
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書是暢銷書《細說PHP》的升級版,相信本書會延續前三版的火爆,成為讀者學習PHP的好幫手,繼續為開源領域做出重要貢獻,推動PHP在中國的廣泛應用。本書作者高洛峰是國內最早一批應用PHP開發的程序員,一直從事PHP的教研、教學工作,現在仍然帶領團隊參與項目開發和架構設計工作。高洛峰也是國內最早的PHP培訓講師,累計講解過PHP全套課程52次,隨著PHP版本的更新迭代,曾三次單獨錄制PHP的全套教學視頻,目前為止一直保持著PHP教學視頻下載量最高的紀錄,讓數百萬的PHP學習者受益,是PHP愛好者的領軍人。
PHP從誕生到現在已經有20多年的歷史了,Web時代發展至今,各種編程語言和技術層出不窮, Node.js、GO和Python等也在不斷地挑戰PHP的地位。作為老牌Web后端編程語言的PHP,仍然在全球市場具有非常高的占有率。從各個招聘網站的數據上來看,招聘PHP開發的職位非常多,薪資水平也非常不錯。在中小企業、互聯網創業公司,PHP的市場地位也是高于其他編程語言的。目前來看, Node.js、 GO、Python等語言在Web開發領域還難以企及PHP。PHP語言之所以能有今天的地位,得益于PHP語言設計者一直遵從實用主義,將技術的復雜性隱藏在底層。PHP語言入門簡單,容易掌握,程序健壯性好,不容易出現像Java、C++ 等其他語言那樣復雜的問題,開發和調試相對輕松,是初學者進入編程領域首選的編程語言。
IT兄弟連(itxdl.cn)自2006年成立至今,以“為社會培養優秀IT人才”為使命,傳承極致的工匠精神,深耕軟件開發培訓的重度垂直領域,堅守“教學靠譜、變態嚴管、素質培養”的核心競爭力,實現“成為IT培訓界的黃埔軍校”的偉大愿景。IT兄弟連匯聚了來自北大、清華和BAT等知名校企的專兼職教師數百名。超前的產品研發、線上線下相結合的科學教學模式和嚴格的教務管理體系共同確保了教學質量,使數十萬名學員、從業人員和IT愛好者受惠。IT兄弟連以優秀的教學效果和先進的經營模式贏得各界權威機構的認可,公司先后榮獲騰訊網“年度特色職業教育品牌”、百度教育“2017年度新銳教育品牌”等多項榮譽。

IT兄弟連現有的培訓產品雖然覆蓋IT行業所有主流應用技術,包括Python+人工智能、Java+大數據、前端H5、UI/UE、云計算和Go+區塊鏈等,但IT兄弟連其實是以PHP培訓起家的,并將PHP培訓做到了行業第一,在國內幾乎每兩名PHP程序員,就有一名來自IT兄弟連。通過IT兄弟連十多年在PHP教學和軟件開發中的積累,相關的課程內容也每半年升級一次,緊跟PHP快速發展的步伐,為廣大PHPer源源不斷地提供前沿的學習資源。IT兄弟連必將不忘初心,繼續保持PHP培訓行業領航品牌,推動PHP語言在中國的發展。當然,IT兄弟連也會發動自身強大的教研和教學力量,在其他編程領域精耕細作,研發更多更好的學習資料,編寫高質量的圖書教材,相信一定也會像《細說PHP》一樣受到讀者的喜愛。

IT兄弟連 創始人 李超
2019年2月

前言



PHP是一種開源的開發語言,具有程序開發速度快、運行快、技術本身學習快等快捷性的特點,無疑是當今Web開發中最佳的編程語言。在Web開發方面,與同類語言Java、Python及Go相比,PHP具有簡易性、高安全性和執行靈活等優點,使用PHP開發的Web項目,在軟件方面的投資成本較低、運行較穩定。雖然其他編程語言近些年在不斷地挑戰PHP的地位,但在Web開發中PHP一直是霸主。另外,隨著移動互聯網的應用普及及微信小程序的應用越來越火爆,現在越來越多的供應商、用戶和企業都認識到,使用PHP開發的小程序更加具有競爭力,更加吸引客戶。目前開發使用的PHP 7以上版本,無論從性能、質量還是價格上,都將成為企業和政府信息化必須考慮的開發語言。
本書分為28章,從PHP的行業發展和了解Web開發構件開始,包含了Web后端的全棧技術,并以PHP為主線,到可以完成一個標準化、高質量的商業項目為止。本書所有內容皆為當今Web項目開發必用的內容,涵蓋了PHP的絕大多數知識點,并對于某一方面的介紹從多角度進行了延伸。本書全部技術點以PHP 7以上最流行的版本為主,詳細地介紹了PHP及與其相關的Web技術,可以幫助讀者在較短的時間內熟悉并掌握比較實用的PHP技術,其中包括PHP的語言語法、面向對象技術、關系型數據庫MySQL、非關系型數據庫Redis、數據庫抽象層PDO、全球應用排名第一的Laravel框架、PHP的包管理工具Composer、標準的RESTful Web API技術等內容,實用性非常強。本書所涉及的實例全部以特定的應用為基礎,讀者在學習和工作的過程中,可以直接應用本書給出的一些獨立模塊和編程思想。
本書編寫的宗旨是讓讀者能擁有一本PHP學習和開發使用的最好書籍,章節雖然不是很多,但對所羅列出的每個知識點都進行了細化和延伸,并力求講解到位,讓讀者可以輕松地讀懂。本書所介紹的知識點不需要借助其他任何書籍進行輔助和補充,對于每個知識點都有對應翔實的、可運行的配套代碼,對所有實例代碼都附有詳細注釋、說明及運行效果圖。在大部分章節的最后一節都結合一個實用的案例,把該章涉及的零散知識點串在一起進行分析總結,步驟詳細,可操作性強。另外,每個章節都有輔助的微信小程序(圖書兄弟),為讀者安排了大量的擴展知識和配套自測試題及作業,并有配套的視頻教程,能更好地幫助讀者掌握技術點,提高實際編程能力,寓學于練。本書最后呈現了兩套完整的項目文檔和源碼,基中一套是由專業的開發團隊專門為本書設計開發的一個完整的商業項目案例,不管用于學習還是開發,都極具參考和使用價值。通過項目案例,讓讀者心領神會,進入開發實戰中。
本書是暢銷書《細說PHP》升級版。自2009年第1版首次印刷以來,前三個版本先后榮獲51CTO“最受讀者喜愛的原創IT技術圖書獎”、電子工業出版社“2013年度暢銷 IT圖書獎”和“電子工業出版社2016年度好書”等數十項榮譽。

本次升級版,根據PHP語言的升級和當前Web開發的新特性,以及企業當前的應用,還有讀者的反饋和調研,增加了一些新內容,拋棄了一些過時的技術,所有實例都經過了反復測試,每句話都進行了反復推敲。本次升級版變動的幾個重要內容如下:
(1)根據《跟兄弟連學PHP》讀者的反饋,在本次改版中對大部分內容進行了重新整理和優化,更改約1/3的內容。
(2)專門為本書開發了一套小程序(圖書兄弟),為每章全方位配套大量的學習資源。
(3)將PHP所有章節的內容都升級到當前最流行的PHP 7以上版本。
(4)根據目前項目開發模式增加流行的Redis、Composer、Laravel、RESTful API等技術點,講解全面。
(5)由專業的項目開發團隊為本書專門開發一套商業項目EDUPlayer作為教學案例。不管從程序架構還是單個模塊的實現,都采用當前最流行的技術,并經過反復測試,完全可以作為企業項目上線使用,具有極大的參考和使用價值。
(6)書中的每個應用實例都做到了最優,可以直接應用在實際項目開發中。
超強資源配套學習(圖書兄弟)小程序
“圖書兄弟”是為了方便讀者高效率學習本書內容,為讀者特別開發的一個輔助學習的微信小程序,該小程序提供了豐富的學習資源,大幅擴展了本書內容,為每個章節都配套提供了八大主題,讀者在注冊小程序后即可免費使用。讀者只需要掃描右方二維碼,注冊后即可進入小程序主界面,按書中目錄結構學習,也可以通過每章的二維碼直接定位到學習內容。讀者還能在“圖書兄弟”小程序中與小伙伴們和編者進行交流。
“圖書兄弟”小程序配套資源說明

學習視頻 包括但不限于本書內容的教學視頻,播放時長超過150個小時,教學視頻對本書內容進行了大幅擴展
課后習題 除本書各章提供的練習題外,小程序還專門設計了200多道練習題,供讀者鞏固知識,提升開發技能
課后作業 提供了30多個課外作業,讀者可以到本欄目嘗試自己檢查學習效果,是否達到了預期目標
擴展知識 提供了與本書內容相關的50多篇擴展文章
演示文檔 提供了本書內容的20多個PPT教學課件
資源下載 提供了高效學習本書內容的20多種常用資源包
常見問題 提供了80多個常見問題及解答,如果讀者在學習過程中遇到困惑,可到本主題尋求答案
代碼示例 包括本書各章所有代碼示例1600多個,直接復制即可使用,無須再費時費力用鍵盤輸入

“圖書兄弟”小程序完全免費,此外,小程序中的內容會不斷更新和擴充,敬請讀者關注。
本書適合讀者
? PHP專業開發人員。
? 接受PHP培訓的學員。
? Web開發愛好者。
? 網站維護及管理人員。
? 初級或專業的網站開發人員。
? 大中專院校的教師及培訓中心的講師。
? 進行畢業設計和對PHP感興趣的學生。
? 從事JSP、Python和Go想轉向PHP開發的程序員。
本書由高洛峰編著,參加編寫及審校工作的人員有孫健魁、李強、趙帥、王建雙、徐梟雄、王寶龍、劉萬濤、畢恩竹、王猛、李子星、焦華峰、管長龍、高曉風、郭彩軍和IT兄弟連項目開發部門全體成員,在此一并表示感謝。


2019年2月
內容簡介:

本書是暢銷書升級版,全書共分為28章,每章都是PHP獨立知識點的總結,全部以現在最新的PHP7以上版本應用語法為主。內容涵蓋了動態網站開發所需要的后端全棧技術、PHP的常用功能模塊和實用技巧、MySQL和Redis兩種數據庫的設計與應用、PHP面向對象的程序設計思想、數據庫抽象層PDO、Web開發的設計模式、自定義接口技術、全球應用排行第一的Laravel5.5框架技術,并專門組建專業的開發團隊為本書重新開發商業項目EUDPlayer作為案例等。每章都有大量的實用示例及詳盡的注釋,以加速讀者的理解和學習,并為本書單獨開發一個微信小程序(圖書兄弟),提供和章節配套的精制視頻教程、案例和課件下載、擴展文章、章節測試等多方位內容。對于PHP應用開發的新手而言,本書不失為一本好的入門教材,內容既實用又全面,所有實例都可以在開發中直接應用,并輔以配套的視頻教程,使讀者輕松掌握所學知識。另外,本書也適合有一定基礎的網絡開發人員和網絡愛好者,以及大中專院校的師生閱讀與參考。不僅可以作為PHP開發的學習用書,還可以作為從事Web開發的程序員的參考用書和必備手冊。對于行家來說,本書也是一本難得的參考手冊,讀者必將從中獲益。
目錄:

第1章 LAMP網站構建 1
1.1 Web概述 1
1.1.1 Web應用的優勢 2
1.1.2 Web 2.0時代的互聯網 3
1.1.3 Web開發標準 4
1.1.4 認識腳本語言 5
1.2 動態網站開發所需的Web構件 5
1.2.1 客戶端瀏覽器 6
1.2.2 超文本標記語言(HTML) 7
1.2.3 層疊樣式表(CSS) 8
1.2.4 客戶端腳本編程語言JavaScript 8
1.2.5 Web服務器 9
1.2.6 服務器端編程語言 10
1.2.7 數據庫管理系統 10
1.3 幾種主流的Web應用程序平臺 11
1.3.1 Web應用程序開發平臺對比分析 11
1.3.2 動態網站開發平臺技術比較 12
1.4 HTTP協議與Web的關系 13
1.4.1 HTTP協議概述 13
1.4.2 HTTP協議結構 14
1.4.3 HTTP請求消息 15
1.4.4 HTTP響應消息 15
1.4.5 HTTPS是什么 16
1.4.6 URL概述 16
1.5 Web的工作原理 17
1.5.1 情景1:不帶應用程序服務器和數據庫的服務器 17
1.5.2 情景2:帶應用程序服務器的Web服務器 18
1.5.3 情景3:瀏覽器訪問服務器端的數據庫 19
1.6 LAMP網站開發組合概述 19
1.6.1 Linux操作系統 20
1.6.2 Web服務器Apache 20
1.6.3 MySQL數據庫管理系統 20
1.6.4 PHP后臺腳本編程語言 21
1.6.5 LAMP的發展趨勢 21
1.6.6 Web的未來發展 21
1.7 小結 22
第2章 PHP的應用與發展 23
2.1 PHP是什么 23
2.1.1 從認識PHP開始 23
2.1.2 PHP都能做什么 24
2.2 PHP的應用 26
2.2.1 開發網站和移動網站的應用 26
2.2.2 在企業內部信息化系統中的應用 27
2.2.3 在App接口開發方面的應用 27
2.2.4 對微信公眾平臺二次開發的應用 28
2.2.5 微信小程序開發應用 29
2.2.6 PHP在其他方面的應用 29
2.3 PHP的開發優勢 29
2.3.1 簡單易學 30
2.3.2 開發效率高 30
2.3.3 開發成本低 30
2.3.4 程序執行效率高 30
2.3.5 安全性良好 31
2.3.6 功能強大 31
2.3.7 可選擇性多 31
2.4 PHP的發展 31
2.4.1 PHP的誕生 31
2.4.2 PHP的迭代過程 32
2.4.3 PHP的現在 33
2.4.4 PHP的未來 33
2.5 如何學習PHP 34
2.5.1 確定學習的目標 34
2.5.2 PHP學習線路圖 34
2.5.3 堅持動手實驗 36
2.5.4 Bug解決之道 36
2.5.5 看教學視頻,讓學習變得簡單 37
2.5.6 優秀的Web程序員是怎樣練成的 37
2.6 小結 39
第3章 從搭建你的PHP開發環境開始 40
3.1 幾種常見的PHP環境安裝方式 40
3.1.1 在Linux系統上以源代碼包的方式安裝環境 40
3.1.2 在Windows系統上安裝Web工作環境 41
3.1.3 搭建學習型的PHP工作環境 41
3.2 環境安裝對操作系統的選擇 41
3.2.1 選擇網站運營的操作系統 41
3.2.2 選擇網站開發的操作系統 42
3.3 安裝集成PHP開發環境 42
3.3.1 安裝前準備 42
3.3.2 安裝步驟 42
3.3.3 環境測試 43
3.4 集成環境中各服務器的配置 45
3.4.1 Apache配置 46
3.4.2 改變文檔根目錄www的位置 46
3.4.3 修改PHP的默認配置 47
3.4.4 phpMyAdmin的應用 47
3.4.5 修改MySQL默認的訪問權限 48
3.5 小結 49
第4章 PHP的基本語法 50
4.1 第一個PHP腳本程序 50
4.2 PHP語言標記 52
4.2.1 將PHP代碼嵌入HTML中的位置 53
4.2.2 解讀開始和結束標記 53
4.3 指令分隔符“分號” 54
4.4 程序注釋 54
4.5 在程序中使用空白的處理 56
4.6 變量 57
4.6.1 變量的聲明 57
4.6.2 變量的命名 58
4.6.3 可變變量 59
4.6.4 變量的引用賦值 59
4.7 變量的類型 60
4.7.1 類型介紹 60
4.7.2 布爾型(boolean) 61
4.7.3 整型(integer) 62
4.7.4 浮點型(float或double) 63
4.7.5 字符串(string) 63
4.7.6 數組(array) 65
4.7.7 對象(object) 66
4.7.8 資源類型(resource) 66
4.7.9 NULL類型 67
4.7.10 偽類型介紹 67
4.8 數據類型之間相互轉換 67
4.8.1 自動類型轉換 68
4.8.2 強制類型轉換 68
4.8.3 類型轉換細節 69
4.8.4 變量類型的測試函數 69
4.9 常量 70
4.9.1 常量的定義和使用 70
4.9.2 常量和變量 71
4.9.3 PHP新版本可以使用表達式定義常量 72
4.9.4 define()和const的區別 72
4.9.5 系統中的預定義常量 72
4.9.6 PHP中的魔術常量 73
4.10 PHP中的運算符 74
4.10.1 算術運算符 74
4.10.2 字符串運算符 76
4.10.3 賦值運算符 76
4.10.4 比較運算符 77
4.10.5 邏輯運算符 79
4.10.6 位運算符 80
4.10.7 其他運算符 82
4.10.8 運算符的優先級 83
4.11 表達式 84
4.12 容易混淆的特殊值 84
4.13 小結 85
第5章 PHP的流程控制結構 86
5.1 分支結構 86
5.1.1 單一條件分支結構(if) 86
5.1.2 雙向條件分支結構(else子句) 87
5.1.3 多向條件分支結構(elseif子句) 88
5.1.4 多向條件分支結構(switch語句) 89
5.1.5 巢狀條件分支結構 91
5.1.6 條件分支結構實例應用(簡單計算器) 92
5.2 循環結構 93
5.2.1 while語句 94
5.2.2 do…while循環 95
5.2.3 for語句 96
5.3 特殊的流程控制語句 99
5.3.1 break語句 99
5.3.2 continue語句 99
5.3.3 exit語句 100
5.4 PHP的新版特性——goto語句 100
5.5 小結 102
第6章 PHP的函數應用 103
6.1 函數的定義 103
6.2 自定義函數 104
6.2.1 函數的聲明 104
6.2.2 函數的調用 105
6.2.3 函數的參數 106
6.2.4 函數的返回值 107
6.2.5 標量類型聲明 109
6.3 函數的工作原理和結構化編程 111
6.4 PHP變量的范圍 111
6.4.1 局部變量 111
6.4.2 全局變量 112
6.4.3 靜態變量 113
6.5 聲明及應用各種形式的PHP函數 114
6.5.1 常規參數的函數 115
6.5.2 偽類型參數的函數 115
6.5.3 引用參數的函數 115
6.5.4 默認參數的函數 116
6.5.5 可變個數參數的函數 118
6.5.6 回調函數 119
6.6 遞歸函數 122
6.7 使用自定義函數庫 123
6.8 PHP匿名函數和閉包 124
6.9 小結 125
第7章 PHP中的數組與數據結構 126
7.1 數組的分類 126
7.2 數組的定義 127
7.2.1 以直接賦值的方式聲明數組 128
7.2.2 使用array()語言結構新建數組 129
7.2.3 數組簡寫語法 130
7.2.4 多維數組的聲明 130
7.3 數組的遍歷 132
7.3.1 使用for語句循環遍歷數組 132
7.3.2 聯合使用list( )、each( )和while循環遍歷數組 134
7.3.3 使用foreach語句遍歷數組 135
7.3.4 使用數組的內部指針控制函數遍歷數組 138
7.4 預定義數組 139
7.4.1 服務器變量:$_SERVER 140
7.4.2 環境變量:$_ENV 140
7.4.3 URL GET變量:$_GET 141
7.4.4 HTTP POST變量:$_POST 141
7.4.5 request變量:$_REQUEST 142
7.4.6 HTTP文件上傳變量:$_FILES 142
7.4.7 HTTP Cookies:$_COOKIE 142
7.4.8 Session變量:$_SESSION 143
7.4.9 Global變量:$GLOBALS 143
7.5 數組的相關處理函數 143
7.5.1 數組的鍵/值操作函數 143
7.5.2 統計數組元素的個數和唯一性 146
7.5.3 使用回調函數處理數組的函數 147
7.5.4 數組的排序函數 150
7.5.5 拆分、合并、分解和接合數組 153
7.5.6 數組與數據結構 155
7.5.7 其他有用的數組處理函數 157
7.6 操作PHP數組需要注意的一些細節 158
7.6.1 數組運算符號 158
7.6.2 刪除數組中的元素 159
7.6.3 關于數組下標的注意事項 159
7.7 小結 160
第8章 PHP面向對象的程序設計 161
8.1 面向對象概述 161
8.1.1 類和對象之間的關系 161
8.1.2 面向對象的程序設計 162
8.2 如何抽象一個類 163
8.2.1 類的聲明 163
8.2.2 成員屬性 164
8.2.3 成員方法 164
8.3 通過類實例化對象 166
8.3.1 實例化對象 166
8.3.2 對象類型在內存中的分配 167
8.3.3 對象中成員的訪問 168
8.3.4 特殊的對象引用“$this” 169
8.3.5 構造方法與析構方法 171
8.4 封裝性 173
8.4.1 設置私有成員 174
8.4.2 私有成員的訪問 175
8.4.3 _ _set()、_ _get()、_ _isset()和_ _unset() 4個方法 176
8.5 繼承性 180
8.5.1 類繼承的應用 181
8.5.2 訪問類型控制 182
8.5.3 子類中重載父類的方法 184
8.6 常見的關鍵字和魔術方法 186
8.6.1 final關鍵字的應用 186
8.6.2 static關鍵字的使用 187
8.6.3 單態設計模式 188
8.6.4 const關鍵字 189
8.6.5 instanceof關鍵字 189
8.6.6 克隆對象 190
8.6.7 類中通用的方法_ _toString() 191
8.6.8 PHP 7新加入的方法_ _ debugInfo() 191
8.6.9 _ _call()方法的應用 192
8.6.10 自動加載類 194
8.6.11 對象串行化 194
8.7 抽象類與接口 197
8.7.1 抽象類 197
8.7.2 接口技術 198
8.8 多態性的應用 200
8.9 PHP 5.4的Trait特性 201
8.9.1 Trait的聲明 201
8.9.2 Trait的基本使用 202
8.10 PHP 7的匿名類 204
8.10.1 匿名類的聲明 204
8.10.2 匿名類的應用 205
8.11 PHP 5.3新增加的命名空間 206
8.11.1 命名空間的基本應用 206
8.11.2 命名空間的子空間和公共空間 208
8.11.3 命名空間中的名稱和術語 209
8.11.4 別名和導入 209
8.12 面向對象版圖形計算器 211
8.12.1 需求分析 211
8.12.2 功能設計及實現 212
8.12.3 類的組織架構 216
8.13 小結 217
第9章 字符串處理 219
9.1 字符串的處理介紹 219
9.1.1 字符串的處理方式 219
9.1.2 字符串類型的特點 219
9.1.3 雙引號中的變量解析總結 220
9.2 常用的字符串輸出函數 221
9.3 常用的字符串格式化函數 223
9.3.1 去除空格和字符串填補函數 224
9.3.2 字符串大小寫的轉換 225
9.3.3 和HTML標簽相關的字符串格式化 225
9.3.4 其他字符串格式化函數 228
9.4 字符串比較函數 229
9.4.1 按字節順序進行字符串比較 230
9.4.2 按自然排序進行字符串比較 230
9.5 小結 231
第10章 正則表達式 232
10.1 正則表達式簡介 232
10.2 正則表達式的語法規則 233
10.2.1 定界符 233
10.2.2 原子 234
10.2.3 元字符 235
10.2.4 模式修正符 238
10.3 與Perl兼容的正則表達式函數 238
10.3.1 字符串的匹配與查找 239
10.3.2 字符串的替換 242
10.3.3 字符串的分割和連接 246
10.4 文章發布操作示例 248
10.5 小結 252
第11章 PHP的錯誤和異常處理 253
11.1 錯誤處理 253
11.1.1 錯誤報告級別 253
11.1.2 調整錯誤報告級別 254
11.1.3 使用trigger_error()函數代替die()函數 256
11.1.4 自定義錯誤處理 256
11.1.5 寫錯誤日志 257
11.2 異常處理 259
11.2.1 異常處理實現 260
11.2.2 擴展PHP內置的異常處理類 260
11.2.3 捕獲多個異常 262
11.2.4 PHP異常處理新特性 263
11.3 小結 264
第12章 PHP的日期和時間 265
12.1 UNIX時間戳 265
12.1.1 將日期和時間轉變成UNIX時間戳 265
12.1.2 日期的計算 266
12.2 在PHP中獲取日期和時間 267
12.2.1 調用getdate()函數取得日期和時間信息 267
12.2.2 日期和時間格式化輸出 267
12.3 修改PHP的默認時區 269
12.4 使用微秒計算PHP腳本執行時間 269
12.5 日歷類 270
12.6 小結 273
第13章 文件系統處理 275
13.1 文件系統概述 275
13.1.1 文件類型 275
13.1.2 文件的屬性 276
13.2 目錄的基本操作 278
13.2.1 解析目錄路徑 279
13.2.2 遍歷目錄 280
13.2.3 統計目錄大小 281
13.2.4 建立和刪除目錄 282
13.2.5 復制目錄 282
13.3 文件的基本操作 283
13.3.1 文件的打開與關閉 283
13.3.2 寫入文件 285
13.3.3 讀取文件內容 285
13.3.4 訪問遠程文件 287
13.3.5 移動文件指針 288
13.3.6 文件的鎖定機制 289
13.3.7 文件的一些基本操作函數 291
13.4 文件的上傳與下載 292
13.4.1 文件上傳 292
13.4.2 處理多個文件上傳 295
13.4.3 文件下載 296
13.5 設計經典的文件上傳類 297
13.5.1 需求分析 297
13.5.2 程序設計 297
13.5.3 文件上傳類代碼實現 298
13.5.4 文件上傳類的應用過程 301
13.6 小結 303
第14章 PHP動態圖像處理 304
14.1 PHP中GD庫的使用 304
14.1.1 畫布管理 305
14.1.2 設置顏色 306
14.1.3 生成圖像 306
14.1.4 繪制圖像 307
14.1.5 在圖像中繪制文字 309
14.2 設計經典的驗證碼類 311
14.2.1 設計驗證碼類 311
14.2.2 應用驗證碼類的實例對象 313
14.2.3 表單中應用驗證碼 313
14.2.4 實例演示 314
14.3 PHP圖片處理 314
14.3.1 圖片背景管理 314
14.3.2 圖片縮放 316
14.3.3 圖片裁剪 317
14.3.4 添加圖片水印 318
14.3.5 圖片旋轉和翻轉 319
14.4 設計經典的圖像處理類 321
14.4.1 需求分析 322
14.4.2 程序設計 322
14.4.3 圖像處理類代碼實現 323
14.4.4 圖像處理類的應用過程 327
14.5 小結 328
第15章 MySQL數據庫概述 329
15.1 數據庫的應用 329
15.1.1 數據庫在Web開發中的重要地位 329
15.1.2 為什么PHP會選擇MySQL作為自己的黃金搭檔 330
15.1.3 PHP和MySQL的合作方式 330
15.1.4 結構化查詢語言SQL 331
15.2 MySQL數據庫的常見操作 331
15.2.1 MySQL數據庫的連接與關閉 331
15.2.2 創建新用戶并授權 332
15.2.3 創建數據庫 333
15.2.4 創建數據表 333
15.2.5 數據表內容的簡單管理 334
15.3 小結 335
第16章 MySQL數據表的設計 336
16.1 數據表(Table) 336
16.2 數據值和列類型 337
16.2.1 數值類的數據列類型 337
16.2.2 字符串類的數據列類型 338
16.2.3 日期和時間類的數據列類型 339
16.2.4 NULL值 339
16.2.5 類型轉換 339
16.3 數據字段屬性 340
16.4 數據表對象管理 340
16.4.1 創建表(CREATE TABLE) 340
16.4.2 修改表(ALTER TABLE) 342
16.4.3 刪除表(DROP TABLE) 342
16.5 數據表的類型及存儲位置 343
16.5.1 MyISAM數據表 343
16.5.2 InnoDB數據表 343
16.5.3 選擇InnoDB還是MyISAM數據表類型 343
16.5.4 數據表的存儲位置 344
16.6 數據表的默認字符集 344
16.6.1 字符集 344
16.6.2 字符集支持原理 345
16.6.3 創建數據對象時修改字符集 345
16.7 創建索引 346
16.7.1 主鍵索引(PRIMARY KEY) 346
16.7.2 唯一索引(UNIQUE) 347
16.7.3 常規索引(INDEX) 347
16.7.4 全文索引(FULLTEXT) 348
16.8 數據庫的設計技巧 348
16.8.1 數據庫的設計要求 348
16.8.2 命名的技巧 348
16.8.3 數據庫具體設計工作中的技巧 349
16.9 小結 349
第17章 SQL語句設計 350
17.1 操作數據表中的數據記錄(DML) 350
17.1.1 使用INSERT語句向數據表中添加數據 350
17.1.2 使用UPDATE語句更新數據表中已存在的數據 351
17.1.3 使用DELETE語句刪除數據表中不需要的數據記錄 352
17.2 通過DQL命令查詢數據表中的數據 352
17.2.1 選擇特定的字段 353
17.2.2 使用AS子句為字段取別名 353
17.2.3 DISTINCT關鍵字的使用 353
17.2.4 在SELECT語句中使用表達式的列 354
17.2.5 使用WHERE子句按條件檢索 355
17.2.6 根據空值(NULL)確定檢索條件 356
17.2.7 使用BETWEEN AND進行范圍比較查詢 356
17.2.8 使用IN進行范圍比較查詢 356
17.2.9 使用LIKE進行模糊查詢 356
17.2.10 多表查詢(連接查詢) 357
17.2.11 嵌套查詢(子查詢) 359
17.2.12 使用ORDER BY對查詢結果排序 359
17.2.13 使用LIMIT限定結果行數 360
17.2.14 使用統計函數 360
17.2.15 使用GROUP BY對查詢結果分組 361
17.3 查詢優化 362
17.4 小結 363
第18章 數據庫抽象層PDO 364
18.1 PHP訪問MySQL數據庫服務器的流程 364
18.2 PDO所支持的數據庫 365
18.3 PDO的安裝 366
18.4 創建PDO對象 367
18.4.1 以多種方式調用構造方法 368
18.4.2 PDO對象中的成員方法 370
18.5 使用PDO對象 370
18.5.1 調整PDO的行為屬性 370
18.5.2 PDO處理PHP程序和數據庫之間的數據類型轉換 371
18.5.3 PDO的錯誤處理模式 371
18.5.4 使用PDO執行SQL語句 372
18.6 PDO對預處理語句的支持 373
18.6.1 了解PDOStatement對象 374
18.6.2 準備語句 375
18.6.3 綁定參數 375
18.6.4 執行準備好的查詢 376
18.6.5 獲取數據 377
18.6.6 大數據對象的存取 380
18.7 PDO的事務處理 381
18.7.1 MySQL的事務處理 381
18.7.2 構建事務處理的應用程序 382
18.8 設計完美分頁類 383
18.8.1 需求分析 383
18.8.2 程序設計 383
18.8.3 完美分頁類的代碼實現 385
18.8.4 完美分頁類的應用過程 388
18.9 管理表books實例 390
18.9.1 需求分析 390
18.9.2 程序設計 391
18.10 小結 397
本章必須掌握的知識點 397
本章需要了解的內容 398
本章需要拓展的內容 398
第19章 MemCache管理與應用 399
19.1 MemCache概述 399
19.1.1 初識MemCache 399
19.1.2 MemCache在Web中的應用 400
19.2 memcached的安裝及管理 401
19.2.1 Linux下安裝MemCache軟件 401
19.2.2 Windows下安裝MemCache軟件 402
19.2.3 memcached服務器的管理 403
19.3 使用Telnet作為memcached的客戶端管理 403
19.3.1 連接memcached服務器 403
19.3.2 基本的memcached客戶端命令 403
19.3.3 查看當前memcached服務器的運行狀態信息 404
19.3.4 數據管理指令 404
19.4 PHP的memcached管理接口 405
19.4.1 安裝PHP中的MemCache應用程序擴展接口 405
19.4.2 MemCache應用程序擴展接口 407
19.4.3 MemCache的實例應用 411
19.5 memcached服務器的安全防護 412
19.6 小結 412
第20章 會話控制 414
20.1 為什么要使用會話控制 414
20.2 會話跟蹤的方式 415
20.3 Cookie的應用 415
20.3.1 Cookie概述 415
20.3.2 向客戶端計算機中設置Cookie 416
20.3.3 在PHP腳本中讀取Cookie的資料內容 417
20.3.4 數組形態的Cookie應用 418
20.3.5 刪除Cookie 418
20.3.6 基于Cookie的用戶登錄模塊 419
20.4 Session的應用 420
20.4.1 Session概述 420
20.4.2 配置Session 421
20.4.3 Session的聲明與使用 422
20.4.4 注冊一個會話變量和讀取Session 422
20.4.5 注銷變量與銷毀Session 423
20.4.6 Session的自動回收機制 424
20.4.7 傳遞Session ID 425
20.5 一個簡單的郵件系統實例 427
20.5.1 為郵件系統準備數據 427
20.5.2 編碼實現郵件系統 428
20.5.3 郵件系統執行說明 430
20.6 自定義Session處理方式 431
20.6.1 自定義Session的存儲機制 431
20.6.2 使用數據庫處理Session信息 433
20.6.3 使用memcached處理Session信息 436
20.7 小結 438
第21章 Redis的管理與應用 439
21.1 從認識Redis開始 439
21.1.1 Redis與其他數據庫和軟件的對比 439
21.1.2 Redis的特點 440
21.1.3 使用Redis的理由 440
21.2 Redis環境安裝及管理 441
21.2.1 安裝Redis 441
21.2.2 啟動Redis服務 442
21.2.3 Redis服務的性能測試 442
21.2.4 Redis服務的配置管理 443
21.3 Redis客戶端管理 444
21.3.1 命令行客戶端操作 445
21.3.2 安裝PHP的Redis擴展 445
21.4 Redis服務器的基本操作 446
21.5 Redis的數據類型 447
21.6 PHP操作Redis的通用方法 448
21.7 Redis的字符串(String)類型 449
21.7.1 相關的命令操作 449
21.7.2 應用場景 450
21.7.3 使用Redis實現頁面緩存 450
21.8 Redis的列表(List)類型 451
21.8.1 相關的命令操作 452
21.8.2 應用場景 453
21.8.3 “PHP+Redis”實現消息隊列 453
21.9 Redis的集合(Set)類型 454
21.9.1 相關的命令操作 454
21.9.2 應用場景 456
21.9.3 “PHP+Redis”實現共同好友功能 456
21.10 Redis的Sorted Set有序集合類型 458
21.10.1 相關的命令操作 458
21.10.2 應用場景 459
21.10.3 “PHP+Redis”實現排行榜功能 460
21.11 Redis的哈希(hash)表類型 461
21.11.1 相關的命令操作 461
21.11.2 應用場景 463
21.11.3 使用Redis實現購物車功能 463
21.12 Redis訂閱發布系統 465
21.12.1 Redis 發布訂閱 465
21.12.2 Redis 發布訂閱操作 465
21.13 Redis的事務處理機制 466
21.14 小結 467
第22章 PHP的CURL功能擴展模塊 468
22.1 CURL功能擴展模塊介紹 468
22.2 PHP的CURL功能擴展模塊基本用法 469
22.3 CURL相關的功能選項 470
22.4 通過CURL擴展獲取頁面信息 471
22.5 通過CURL擴展用POST方法發送數據 473
22.6 通過CURL擴展上傳文件 474
22.7 通過CURL模擬登錄并獲取數據 476
22.8 小結 477
第23章 自定義PHP接口規范 478
23.1 應用程序編程接口(API) 478
23.1.1 什么是接口 478
23.1.2 了解實現接口的幾種方法 479
23.1.3 接口的應用和優勢 480
23.2 接口實現的基礎 482
23.2.1 實現接口的訪問流程 482
23.2.2 處理接口的返回值 483
23.2.3 在程序中訪問接口 484
23.3 接口的安全控制規范 486
23.3.1 API安全控制原則 487
23.3.2 API安全控制簡單實現步驟 487
23.4 API的設計原則和規范 491
23.4.1 什么是RESTful風格的API 491
23.4.2 RESTful API應遵循的原則 491
23.5 創建RESTful規范 WebAPI框架 495
23.5.1 程序結構設計 495
23.5.2 架構詳解 496
23.5.3 WebAPI框架應用 502
23.5.4 客戶端訪問API 507
23.6 使用第三方接口服務實例 509
23.6.1 查找API 509
23.6.2 查看API文檔說明 509
23.6.3 獲取接口的key 510
23.6.4 使用 PHP 代碼請求接口 510
23.7 小結 511
第24章 PHP依賴管理工具Composer 513
24.1 認識Composer 513
24.1.1 什么是Composer 513
24.1.2 Composer的代碼庫在哪里 514
24.1.3 類庫的規范 515
24.2 Composer的安裝 515
24.2.1 安裝前的準備 515
24.2.2 安裝步驟 515
24.2.3 測試安裝環境 516
24.3 Composer常用文件 517
24.3.1 vendor目錄 517
24.3.2 composer.json 文件 517
24.3.3 composer.lock 文件 518
24.4 Composer常用命令 519
24.4.1 Composer基本命令的使用 519
24.4.2 Composer命令的運行流程 520
24.5 Composer應用案例 521
24.5.1 搜索需要的庫 521
24.5.2 應用前準備 522
24.5.3 應用類庫 523
24.6 小結 525
第25章 MVC模式與PHP框架 526
25.1 MVC模式在Web中的應用 526
25.1.1 MVC模式的工作原理 526
25.1.2 MVC模式的優缺點 527
25.2 PHP開發框架 528
25.2.1 什么是框架 528
25.2.2 為什么要用框架 529
25.2.3 框架和MVC模式的關系 529
25.2.4 流行的PHP框架比較 530
25.3 劃分模塊和操作 532
25.3.1 為項目劃分模塊 532
25.3.2 為模塊設置操作 532
25.4 小結 533
第26章 簡潔優雅的Laravel開發框架 534
26.1 認識Laravel框架 534
26.1.1 什么是Laravel框架 534
26.1.2 Laravel框架的功能特點 534
26.1.3 Laravel框架的技術特點 535
26.1.4 Laravel框架應用的重要性 536
26.1.5 Laravel框架的發展歷程 536
26.2 安裝Laravel 538
26.2.1 安裝前準備 538
26.2.2 安裝Laravel 5.5 539
26.2.3 Laravel框架的目錄結構 540
26.2.4 初始化Laravel框架安裝的一些設置 542
26.2.5 Laravel框架的Artisan工具 544
26.3 Laravel框架的工作流程 544
26.3.1 基本的工作流程 545
26.3.2 客戶端 546
26.3.3 主入口文件 546
26.3.4 URL路由 546
26.3.5 控制器層(C) 547
26.3.6 中間件 548
26.3.7 數據庫操作層(M) 550
26.3.8 視圖層(V) 553
26.3.9 請求和響應 556
26.4 Laravel框架的核心服務容器 561
26.4.1 IoC 容器 561
26.4.2 了解Laravel框架的核心 562
26.4.3 注冊自己的服務到容器中 566
26.4.4 門面(Facades) 567
26.4.5 使用Composer為Laravel框架安裝擴展插件包 569
26.5 基于Laravel框架的Web應用實例 571
26.5.1 用戶登錄模塊 571
26.5.2 后臺管理平臺模塊 573
26.5.3 文章模塊 575
26.5.4 搭建前臺模塊 584
26.5.5 評論模塊 586
26.6 基于Laravel 5.5的API應用實例 590
26.6.1 構建接口模塊 590
26.6.2 封裝返回的統一消息 591
26.6.3 為API增加版本 593
26.6.4 API token認證 593
26.6.5 編寫文檔和測試 596
26.7 小結 596
第27章 項目開發實戰——博客系統 597
27.1 項目介紹 597
27.2 需求分析 597
27.2.1 系統目標 598
27.2.2 系統功能結構 598
27.2.3 權限介紹 599
27.3 操作流程圖 599
27.3.1 博客前臺操作流程 599
27.3.2 博客后臺操作流程 600
27.4 原型圖 600
27.4.1 什么是原型圖 600
27.4.2 原型圖的分類 600
27.4.3 項目部分原型頁面展示 601
27.5 博客項目的模塊介紹 604
27.5.1 前臺模塊 604
27.5.2 后臺模塊 604
27.5.3 前后臺模塊思維導圖 605
27.6 數據庫設計說明 606
27.6.1 概念結構設計 606
27.6.2 通過實體得到ER圖 606
27.6.3 邏輯結構設計 607
27.6.4 數據庫物理結構設計 608
27.7 程序設計說明 610
27.7.1 環境部署 611
27.7.2 權限設置 611
27.7.3 項目目錄結構 611
27.7.4 項目模塊結構 612
27.7.5 項目程序結構 612
27.7.6 模型說明 616
27.7.7 自定義類及安裝的組件 617
27.8 項目安裝和部署 617
27.8.1 搭建虛擬主機 617
27.8.2 導入數據庫 618
27.8.3 項目應用 618
27.9 本章作業 619
27.9.1 任務一:修改網站配置模塊 619
27.9.2 任務二:添加友情鏈接模塊 622
27.10 小結 624
第28章 在線教育系統EDUPlayer 625
28.1 項目背景 625
28.2 需求分析 625
28.2.1 系統目標 625
28.2.2 前后端分離架構 626
28.2.3 系統功能結構 626
28.2.4 權限介紹 626
28.3 操作流程 627
28.3.1 前臺操作流程 628
28.3.2 后臺操作流程 628
28.4 原型圖 629
28.5 系統模塊介紹 631
28.5.1 前臺模塊 631
28.5.2 后臺模塊 632
28.5.3 前臺模塊思維導圖 632
28.5.4 后臺模塊思維導圖 632
28.6 數據庫設計說明 633
28.6.1 概念結構設計 634
28.6.2 通過實體獲取ER圖 634
28.6.3 Laravel 框架的數據表遷移工具 635
28.6.4 數據表詳解 635
28.7 項目安裝 656
28.7.1 環境依賴 656
28.7.2 環境安裝之 nginx 657
28.7.3 環境安裝之 PHP 657
28.7.4 環境安裝之MySQL 658
28.7.5 環境安裝之 Redis 659
28.7.6 環境安裝之Git 659
28.7.7 環境安裝之 Composer 659
28.7.8 項目下載及配置 660
28.7.9 虛擬主機配置 661
28.7.10 開啟定時任務 662
28.7.11 Redis隊列實現 662
28.7.12 安裝成功 663
28.8 目錄結構 663
28.8.1 根目錄 663
28.8.2 app 目錄 664
28.9 依賴組件 665
28.10 二次開發注意事項 666
28.10.1 搜索參數和排序參數約束 666
28.10.2 關聯加載約束 667
28.10.3 權限驗證約束 668
28.10.4 開發新業務示例 668
28.11 小結 669
附錄 671
附錄A 編碼規范 672
附錄B PHP項目的安全和優化 683
附錄C PHP 5.3∼PHP 5.6中的新特性 695
序: