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