關(guān)于我們
書單推薦
新書推薦
|
細(xì)說PHP(第4版) 讀者對象:在校大學(xué)生、PHP初學(xué)者、剛參加工作不久的Web開發(fā)程序員
本書是暢銷書升級版,全書共分為28章,每章都是PHP獨立知識點的總結(jié),全部以現(xiàn)在最新的PHP7以上版本應(yīng)用語法為主。內(nèi)容涵蓋了動態(tài)網(wǎng)站開發(fā)所需要的后端全棧技術(shù)、PHP的常用功能模塊和實用技巧、MySQL和Redis兩種數(shù)據(jù)庫的設(shè)計與應(yīng)用、PHP面向?qū)ο蟮某绦蛟O(shè)計思想、數(shù)據(jù)庫抽象層PDO、Web開發(fā)的設(shè)計模式、自定義接口技術(shù)、全球應(yīng)用排行第一的Laravel5.5框架技術(shù),并專門組建專業(yè)的開發(fā)團隊為本書重新開發(fā)商業(yè)項目EUDPlayer作為案例等。每章都有大量的實用示例及詳盡的注釋,以加速讀者的理解和學(xué)習(xí),并為本書單獨開發(fā)一個微信小程序(圖書兄弟),提供和章節(jié)配套的精制視頻教程、案例和課件下載、擴展文章、章節(jié)測試等多方位內(nèi)容。對于PHP應(yīng)用開發(fā)的新手而言,本書不失為一本好的入門教材,內(nèi)容既實用又全面,所有實例都可以在開發(fā)中直接應(yīng)用,并輔以配套的視頻教程,使讀者輕松掌握所學(xué)知識。另外,本書也適合有一定基礎(chǔ)的網(wǎng)絡(luò)開發(fā)人員和網(wǎng)絡(luò)愛好者,以及大中專院校的師生閱讀與參考。不僅可以作為PHP開發(fā)的學(xué)習(xí)用書,還可以作為從事Web開發(fā)的程序員的參考用書和必備手冊。對于行家來說,本書也是一本難得的參考手冊,讀者必將從中獲益。
IT兄弟連【易第優(yōu)(北京)科技股份有限公司】副總裁,PHP中文網(wǎng)(php.cn)首席專家,擁有十多年軟件開發(fā)和IT教學(xué)經(jīng)驗。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務(wù),具有扎實的技術(shù)功底。國內(nèi)資深技術(shù)講師,騰訊網(wǎng)絡(luò)人氣名人講師,累計授課長達一萬課時以上,培養(yǎng)了近百名IT名師,培訓(xùn)數(shù)千名學(xué)員成功走向IT崗位。熟悉掌握當(dāng)前應(yīng)用的各種主流編程語言和數(shù)據(jù)庫,其中,對Web系統(tǒng)開發(fā)深有研究,近年來致力于推廣開源的PHP技術(shù)。
目錄
第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時代的互聯(lián)網(wǎng) 3 1.1.3 Web開發(fā)標(biāo)準(zhǔn) 4 1.1.4 認(rèn)識腳本語言 5 1.2 動態(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)用程序平臺 11 1.3.1 Web應(yīng)用程序開發(fā)平臺對比分析 11 1.3.2 動態(tài)網(wǎng)站開發(fā)平臺技術(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后臺腳本編程語言 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)識PHP開始 23 2.1.2 PHP都能做什么 24 2.2 PHP的應(yīng)用 26 2.2.1 開發(fā)網(wǎ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 對微信公眾平臺二次開發(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 功能強大 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 堅持動手實驗 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)站運營的操作系統(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 第一個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 浮點型(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 自動類型轉(zhuǎn)換 68 4.8.2 強制類型轉(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新版本可以使用表達式定義常量 72 4.9.4 define()和const的區(qū)別 72 4.9.5 系統(tǒng)中的預(yù)定義常量 72 4.9.6 PHP中的魔術(shù)常量 73 4.10 PHP中的運算符 74 4.10.1 算術(shù)運算符 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 運算符的優(yōu)先級 83 4.11 表達式 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)實例應(yīng)用(簡單計算器) 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 可變個數(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ù)器變量:$_SERVER 140 7.4.2 環(huán)境變量:$_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 數(shù)組的相關(guān)處理函數(shù) 143 7.5.1 數(shù)組的鍵/值操作函數(shù) 143 7.5.2 統(tǒng)計數(shù)組元素的個數(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ù)組運算符號 158 7.6.2 刪除數(shù)組中的元素 159 7.6.3 關(guān)于數(shù)組下標(biāo)的注意事項 159 7.7 小結(jié) 160 第8章 PHP面向?qū)ο蟮某绦蛟O(shè)計 161 8.1 面向?qū)ο蟾攀?161 8.1.1 類和對象之間的關(guān)系 161 8.1.2 面向?qū)ο蟮某绦蛟O(shè)計 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 對象類型在內(nèi)存中的分配 167 8.3.3 對象中成員的訪問 168 8.3.4 特殊的對象引用“$this” 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()和_ _unset() 4個方法 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è)計模式 188 8.6.4 const關(guān)鍵字 189 8.6.5 instanceof關(guān)鍵字 189 8.6.6 克隆對象 190 8.6.7 類中通用的方法_ _toString() 191 8.6.8 PHP 7新加入的方法_ _ debugInfo() 191 8.6.9 _ _call()方法的應(yīng)用 192 8.6.10 自動加載類 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形計算器 211 8.12.1 需求分析 211 8.12.2 功能設(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 字符串類型的特點 219 9.1.3 雙引號中的變量解析總結(jié) 220 9.2 常用的字符串輸出函數(shù) 221 9.3 常用的字符串格式化函數(shù) 223 9.3.1 去除空格和字符串填補函數(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é)順序進行字符串比較 230 9.4.2 按自然排序進行字符串比較 230 9.5 小結(jié) 231 第10章 正則表達式 232 10.1 正則表達式簡介 232 10.2 正則表達式的語法規(guī)則 233 10.2.1 定界符 233 10.2.2 原子 234 10.2.3 元字符 235 10.2.4 模式修正符 238 10.3 與Perl兼容的正則表達式函數(shù) 238 10.3.1 字符串的匹配與查找 239 10.3.2 字符串的替換 242 10.3.3 字符串的分割和連接 246 10.4 文章發(fā)布操作示例 248 10.5 小結(jié) 252 第11章 PHP的錯誤和異常處理 253 11.1 錯誤處理 253 11.1.1 錯誤報告級別 253 11.1.2 調(diào)整錯誤報告級別 254 11.1.3 使用trigger_error()函數(shù)代替die()函數(shù) 256 11.1.4 自定義錯誤處理 256 11.1.5 寫錯誤日志 257 11.2 異常處理 259 11.2.1 異常處理實現(xiàn) 260 11.2.2 擴展PHP內(nèi)置的異常處理類 260 11.2.3 捕獲多個異常 262 11.2.4 PHP異常處理新特性 263 11.3 小結(jié) 264 第12章 PHP的日期和時間 265 12.1 UNIX時間戳 265 12.1.1 將日期和時間轉(zhuǎn)變成UNIX時間戳 265 12.1.2 日期的計算 266 12.2 在PHP中獲取日期和時間 267 12.2.1 調(diào)用getdate()函數(shù)取得日期和時間信息 267 12.2.2 日期和時間格式化輸出 267 12.3 修改PHP的默認(rèn)時區(qū) 269 12.4 使用微秒計算PHP腳本執(zhí)行時間 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)計目錄大小 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 移動文件指針 288 13.3.6 文件的鎖定機制 289 13.3.7 文件的一些基本操作函數(shù) 291 13.4 文件的上傳與下載 292 13.4.1 文件上傳 292 13.4.2 處理多個文件上傳 295 13.4.3 文件下載 296 13.5 設(shè)計經(jīng)典的文件上傳類 297 13.5.1 需求分析 297 13.5.2 程序設(shè)計 297 13.5.3 文件上傳類代碼實現(xiàn) 298 13.5.4 文件上傳類的應(yīng)用過程 301 13.6 小結(jié) 303 第14章 PHP動態(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īng)典的驗證碼類 311 14.2.1 設(shè)計驗證碼類 311 14.2.2 應(yīng)用驗證碼類的實例對象 313 14.2.3 表單中應(yīng)用驗證碼 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 圖片旋轉(zhuǎn)和翻轉(zhuǎn) 319 14.4 設(shè)計經(jīng)典的圖像處理類 321 14.4.1 需求分析 322 14.4.2 程序設(shè)計 322 14.4.3 圖像處理類代碼實現(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會選擇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è)計 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ù)據(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ù)表的類型及存儲位置 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ù)表的存儲位置 344 16.6 數(shù)據(jù)表的默認(rèn)字符集 344 16.6.1 字符集 344 16.6.2 字符集支持原理 345 16.6.3 創(chuàng)建數(shù)據(jù)對象時修改字符集 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è)計技巧 348 16.8.1 數(shù)據(jù)庫的設(shè)計要求 348 16.8.2 命名的技巧 348 16.8.3 數(shù)據(jù)庫具體設(shè)計工作中的技巧 349 16.9 小結(jié) 349 第17章 SQL語句設(shè)計 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語句中使用表達式的列 354 17.2.5 使用WHERE子句按條件檢索 355 17.2.6 根據(jù)空值(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對查詢結(jié)果排序 359 17.2.13 使用LIMIT限定結(jié)果行數(shù) 360 17.2.14 使用統(tǒng)計函數(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的錯誤處理模式 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è)計完美分頁類 383 18.8.1 需求分析 383 18.8.2 程序設(shè)計 383 18.8.3 完美分頁類的代碼實現(xiàn) 385 18.8.4 完美分頁類的應(yīng)用過程 388 18.9 管理表books實例 390 18.9.1 需求分析 390 18.9.2 程序設(shè)計 391 18.10 小結(jié) 397 本章必須掌握的知識點 397 本章需要了解的內(nèi)容 398 本章需要拓展的內(nèi)容 398 第19章 MemCache管理與應(yīng)用 399 19.1 MemCache概述 399 19.1.1 初識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ù)器的運行狀態(tài)信息 404 19.3.4 數(shù)據(jù)管理指令 404 19.4 PHP的memcached管理接口 405 19.4.1 安裝PHP中的MemCache應(yīng)用程序擴展接口 405 19.4.2 MemCache應(yīng)用程序擴展接口 407 19.4.3 MemCache的實例應(yīng)用 411 19.5 memcached服務(wù)器的安全防護 412 19.6 小結(jié) 412 第20章 會話控制 414 20.1 為什么要使用會話控制 414 20.2 會話跟蹤的方式 415 20.3 Cookie的應(yīng)用 415 20.3.1 Cookie概述 415 20.3.2 向客戶端計算機中設(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 注冊一個會話變量和讀取Session 422 20.4.5 注銷變量與銷毀Session 423 20.4.6 Session的自動回收機制 424 20.4.7 傳遞Session ID 425 20.5 一個簡單的郵件系統(tǒng)實例 427 20.5.1 為郵件系統(tǒng)準(zhǔn)備數(shù)據(jù) 427 20.5.2 編碼實現(xiàn)郵件系統(tǒng) 428 20.5.3 郵件系統(tǒng)執(zhí)行說明 430 20.6 自定義Session處理方式 431 20.6.1 自定義Session的存儲機制 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)識Redis開始 439 21.1.1 Redis與其他數(shù)據(jù)庫和軟件的對比 439 21.1.2 Redis的特點 440 21.1.3 使用Redis的理由 440 21.2 Redis環(huán)境安裝及管理 441 21.2.1 安裝Redis 441 21.2.2 啟動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擴展 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實現(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”實現(xiàn)消息隊列 453 21.9 Redis的集合(Set)類型 454 21.9.1 相關(guān)的命令操作 454 21.9.2 應(yīng)用場景 456 21.9.3 “PHP+Redis”實現(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”實現(xiàn)排行榜功能 460 21.11 Redis的哈希(hash)表類型 461 21.11.1 相關(guān)的命令操作 461 21.11.2 應(yīng)用場景 463 21.11.3 使用Redis實現(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ù)處理機制 466 21.14 小結(jié) 467 第22章 PHP的CURL功能擴展模塊 468 22.1 CURL功能擴展模塊介紹 468 22.2 PHP的CURL功能擴展模塊基本用法 469 22.3 CURL相關(guān)的功能選項 470 22.4 通過CURL擴展獲取頁面信息 471 22.5 通過CURL擴展用POST方法發(fā)送數(shù)據(jù) 473 22.6 通過CURL擴展上傳文件 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 了解實現(xiàn)接口的幾種方法 479 23.1.3 接口的應(yīng)用和優(yōu)勢 480 23.2 接口實現(xiàn)的基礎(chǔ) 482 23.2.1 實現(xiàn)接口的訪問流程 482 23.2.2 處理接口的返回值 483 23.2.3 在程序中訪問接口 484 23.3 接口的安全控制規(guī)范 486 23.3.1 API安全控制原則 487 23.3.2 API安全控制簡單實現(xiàn)步驟 487 23.4 API的設(shè)計原則和規(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è)計 495 23.5.2 架構(gòu)詳解 496 23.5.3 WebAPI框架應(yīng)用 502 23.5.4 客戶端訪問API 507 23.6 使用第三方接口服務(wù)實例 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)識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命令的運行流程 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)缺點 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 為項目劃分模塊 532 25.3.2 為模塊設(shè)置操作 532 25.4 小結(jié) 533 第26章 簡潔優(yōu)雅的Laravel開發(fā)框架 534 26.1 認(rèn)識Laravel框架 534 26.1.1 什么是Laravel框架 534 26.1.2 Laravel框架的功能特點 534 26.1.3 Laravel框架的技術(shù)特點 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框架安裝擴展插件包 569 26.5 基于Laravel框架的Web應(yīng)用實例 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應(yīng)用實例 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章 項目開發(fā)實戰(zhàn)——博客系統(tǒng) 597 27.1 項目介紹 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 博客前臺操作流程 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 前后臺模塊思維導(dǎo)圖 605 27.6 數(shù)據(jù)庫設(shè)計說明 606 27.6.1 概念結(jié)構(gòu)設(shè)計 606 27.6.2 通過實體得到ER圖 606 27.6.3 邏輯結(jié)構(gòu)設(shè)計 607 27.6.4 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計 608 27.7 程序設(shè)計說明 610 27.7.1 環(huán)境部署 611 27.7.2 權(quán)限設(shè)置 611 27.7.3 項目目錄結(jié)構(gòu) 611 27.7.4 項目模塊結(jié)構(gòu) 612 27.7.5 項目程序結(jié)構(gòu) 612 27.7.6 模型說明 616 27.7.7 自定義類及安裝的組件 617 27.8 項目安裝和部署 617 27.8.1 搭建虛擬主機 617 27.8.2 導(dǎo)入數(shù)據(jù)庫 618 27.8.3 項目應(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 項目背景 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 前臺操作流程 628 28.3.2 后臺操作流程 628 28.4 原型圖 629 28.5 系統(tǒng)模塊介紹 631 28.5.1 前臺模塊 631 28.5.2 后臺模塊 632 28.5.3 前臺模塊思維導(dǎo)圖 632 28.5.4 后臺模塊思維導(dǎo)圖 632 28.6 數(shù)據(jù)庫設(shè)計說明 633 28.6.1 概念結(jié)構(gòu)設(shè)計 634 28.6.2 通過實體獲取ER圖 634 28.6.3 Laravel 框架的數(shù)據(jù)表遷移工具 635 28.6.4 數(shù)據(jù)表詳解 635 28.7 項目安裝 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 項目下載及配置 660 28.7.9 虛擬主機配置 661 28.7.10 開啟定時任務(wù) 662 28.7.11 Redis隊列實現(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ā)注意事項 666 28.10.1 搜索參數(shù)和排序參數(shù)約束 666 28.10.2 關(guān)聯(lián)加載約束 667 28.10.3 權(quán)限驗證約束 668 28.10.4 開發(fā)新業(yè)務(wù)示例 668 28.11 小結(jié) 669 附錄 671 附錄A 編碼規(guī)范 672 附錄B PHP項目的安全和優(yōu)化 683 附錄C PHP 5.3~PHP 5.6中的新特性 695
你還可能感興趣
我要評論
|