關于我們
書單推薦
新書推薦
|
細說PHP(第4版) 讀者對象:在校大學生、PHP初學者、剛參加工作不久的Web開發(fā)程序員
本書是暢銷書升級版,全書共分為28章,每章都是PHP獨立知識點的總結(jié),全部以現(xiàn)在最新的PHP7以上版本應用語法為主。內(nèi)容涵蓋了動態(tài)網(wǎng)站開發(fā)所需要的后端全棧技術、PHP的常用功能模塊和實用技巧、MySQL和Redis兩種數(shù)據(jù)庫的設計與應用、PHP面向?qū)ο蟮某绦蛟O計思想、數(shù)據(jù)庫抽象層PDO、Web開發(fā)的設計模式、自定義接口技術、全球應用排行第一的Laravel5.5框架技術,并專門組建專業(yè)的開發(fā)團隊為本書重新開發(fā)商業(yè)項目EUDPlayer作為案例等。每章都有大量的實用示例及詳盡的注釋,以加速讀者的理解和學習,并為本書單獨開發(fā)一個微信小程序(圖書兄弟),提供和章節(jié)配套的精制視頻教程、案例和課件下載、擴展文章、章節(jié)測試等多方位內(nèi)容。對于PHP應用開發(fā)的新手而言,本書不失為一本好的入門教材,內(nèi)容既實用又全面,所有實例都可以在開發(fā)中直接應用,并輔以配套的視頻教程,使讀者輕松掌握所學知識。另外,本書也適合有一定基礎的網(wǎng)絡開發(fā)人員和網(wǎng)絡愛好者,以及大中專院校的師生閱讀與參考。不僅可以作為PHP開發(fā)的學習用書,還可以作為從事Web開發(fā)的程序員的參考用書和必備手冊。對于行家來說,本書也是一本難得的參考手冊,讀者必將從中獲益。
IT兄弟連【易第優(yōu)(北京)科技股份有限公司】副總裁,PHP中文網(wǎng)(php.cn)首席專家,擁有十多年軟件開發(fā)和IT教學經(jīng)驗。曾任多家上市公司技術總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務,具有扎實的技術功底。國內(nèi)資深技術講師,騰訊網(wǎng)絡人氣名人講師,累計授課長達一萬課時以上,培養(yǎng)了近百名IT名師,培訓數(shù)千名學員成功走向IT崗位。熟悉掌握當前應用的各種主流編程語言和數(shù)據(jù)庫,其中,對Web系統(tǒng)開發(fā)深有研究,近年來致力于推廣開源的PHP技術。
目錄
第1章 LAMP網(wǎng)站構(gòu)建 1 1.1 Web概述 1 1.1.1 Web應用的優(yōu)勢 2 1.1.2 Web 2.0時代的互聯(lián)網(wǎng) 3 1.1.3 Web開發(fā)標準 4 1.1.4 認識腳本語言 5 1.2 動態(tài)網(wǎng)站開發(fā)所需的Web構(gòu)件 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 數(shù)據(jù)庫管理系統(tǒng) 10 1.3 幾種主流的Web應用程序平臺 11 1.3.1 Web應用程序開發(fā)平臺對比分析 11 1.3.2 動態(tài)網(wǎng)站開發(fā)平臺技術比較 12 1.4 HTTP協(xié)議與Web的關系 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響應消息 15 1.4.5 HTTPS是什么 16 1.4.6 URL概述 16 1.5 Web的工作原理 17 1.5.1 情景1:不帶應用程序服務器和數(shù)據(jù)庫的服務器 17 1.5.2 情景2:帶應用程序服務器的Web服務器 18 1.5.3 情景3:瀏覽器訪問服務器端的數(shù)據(jù)庫 19 1.6 LAMP網(wǎng)站開發(fā)組合概述 19 1.6.1 Linux操作系統(tǒng) 20 1.6.2 Web服務器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的應用與發(fā)展 23 2.1 PHP是什么 23 2.1.1 從認識PHP開始 23 2.1.2 PHP都能做什么 24 2.2 PHP的應用 26 2.2.1 開發(fā)網(wǎng)站和移動網(wǎng)站的應用 26 2.2.2 在企業(yè)內(nèi)部信息化系統(tǒng)中的應用 27 2.2.3 在App接口開發(fā)方面的應用 27 2.2.4 對微信公眾平臺二次開發(fā)的應用 28 2.2.5 微信小程序開發(fā)應用 29 2.2.6 PHP在其他方面的應用 29 2.3 PHP的開發(fā)優(yōu)勢 29 2.3.1 簡單易學 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 如何學習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 優(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 搭建學習型的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 安裝前準備 42 3.3.2 安裝步驟 42 3.3.3 環(huán)境測試 43 3.4 集成環(huán)境中各服務器的配置 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 小結(jié) 49 第4章 PHP的基本語法 50 4.1 第一個PHP腳本程序 50 4.2 PHP語言標記 52 4.2.1 將PHP代碼嵌入HTML中的位置 53 4.2.2 解讀開始和結(jié)束標記 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)換細節(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)中的預定義常量 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 運算符的優(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)實例應用(簡單計算器) 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ù)應用 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 標量類型聲明 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 聲明及應用各種形式的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 默認參數(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 預定義數(shù)組 139 7.4.1 服務器變量:$_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ù)組的相關處理函數(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ù)組需要注意的一些細節(jié) 158 7.6.1 數(shù)組運算符號 158 7.6.2 刪除數(shù)組中的元素 159 7.6.3 關于數(shù)組下標的注意事項 159 7.7 小結(jié) 160 第8章 PHP面向?qū)ο蟮某绦蛟O計 161 8.1 面向?qū)ο蟾攀?161 8.1.1 類和對象之間的關系 161 8.1.2 面向?qū)ο蟮某绦蛟O計 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 設置私有成員 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 單態(tài)設計模式 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 多態(tài)性的應用 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 面向?qū)ο蟀鎴D形計算器 211 8.12.1 需求分析 211 8.12.2 功能設計及實現(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標簽相關的字符串格式化 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的默認時區(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 復制目錄 282 13.3 文件的基本操作 283 13.3.1 文件的打開與關閉 283 13.3.2 寫入文件 285 13.3.3 讀取文件內(nèi)容 285 13.3.4 訪問遠程文件 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 設計經(jīng)典的文件上傳類 297 13.5.1 需求分析 297 13.5.2 程序設計 297 13.5.3 文件上傳類代碼實現(xiàn) 298 13.5.4 文件上傳類的應用過程 301 13.6 小結(jié) 303 第14章 PHP動態(tài)圖像處理 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 設計經(jīng)典的驗證碼類 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 圖片旋轉(zhuǎn)和翻轉(zhuǎn) 319 14.4 設計經(jīng)典的圖像處理類 321 14.4.1 需求分析 322 14.4.2 程序設計 322 14.4.3 圖像處理類代碼實現(xiàn) 323 14.4.4 圖像處理類的應用過程 327 14.5 小結(jié) 328 第15章 MySQL數(shù)據(jù)庫概述 329 15.1 數(shù)據(jù)庫的應用 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ù)庫的連接與關閉 331 15.2.2 創(chuàng)建新用戶并授權 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ù)表的設計 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ù)表的默認字符集 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ù)庫的設計技巧 348 16.8.1 數(shù)據(jù)庫的設計要求 348 16.8.2 命名的技巧 348 16.8.3 數(shù)據(jù)庫具體設計工作中的技巧 349 16.9 小結(jié) 349 第17章 SQL語句設計 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關鍵字的使用 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ù)庫服務器的流程 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對預處理語句的支持 373 18.6.1 了解PDOStatement對象 374 18.6.2 準備語句 375 18.6.3 綁定參數(shù) 375 18.6.4 執(zhí)行準備好的查詢 376 18.6.5 獲取數(shù)據(jù) 377 18.6.6 大數(shù)據(jù)對象的存取 380 18.7 PDO的事務處理 381 18.7.1 MySQL的事務處理 381 18.7.2 構(gòu)建事務處理的應用程序 382 18.8 設計完美分頁類 383 18.8.1 需求分析 383 18.8.2 程序設計 383 18.8.3 完美分頁類的代碼實現(xiàn) 385 18.8.4 完美分頁類的應用過程 388 18.9 管理表books實例 390 18.9.1 需求分析 390 18.9.2 程序設計 391 18.10 小結(jié) 397 本章必須掌握的知識點 397 本章需要了解的內(nèi)容 398 本章需要拓展的內(nèi)容 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服務器的運行狀態(tài)信息 404 19.3.4 數(shù)據(jù)管理指令 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 小結(jié) 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的資料內(nèi)容 417 20.3.4 數(shù)組形態(tài)的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 一個簡單的郵件系統(tǒng)實例 427 20.5.1 為郵件系統(tǒng)準備數(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的管理與應用 439 21.1 從認識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服務 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的數(shù)據(jù)類型 447 21.6 PHP操作Redis的通用方法 448 21.7 Redis的字符串(String)類型 449 21.7.1 相關的命令操作 449 21.7.2 應用場景 450 21.7.3 使用Redis實現(xiàn)頁面緩存 450 21.8 Redis的列表(List)類型 451 21.8.1 相關的命令操作 452 21.8.2 應用場景 453 21.8.3 “PHP+Redis”實現(xiàn)消息隊列 453 21.9 Redis的集合(Set)類型 454 21.9.1 相關的命令操作 454 21.9.2 應用場景 456 21.9.3 “PHP+Redis”實現(xiàn)共同好友功能 456 21.10 Redis的Sorted Set有序集合類型 458 21.10.1 相關的命令操作 458 21.10.2 應用場景 459 21.10.3 “PHP+Redis”實現(xiàn)排行榜功能 460 21.11 Redis的哈希(hash)表類型 461 21.11.1 相關的命令操作 461 21.11.2 應用場景 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的事務處理機制 466 21.14 小結(jié) 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方法發(fā)送數(shù)據(jù) 473 22.6 通過CURL擴展上傳文件 474 22.7 通過CURL模擬登錄并獲取數(shù)據(jù) 476 22.8 小結(jié) 477 第23章 自定義PHP接口規(guī)范 478 23.1 應用程序編程接口(API) 478 23.1.1 什么是接口 478 23.1.2 了解實現(xiàn)接口的幾種方法 479 23.1.3 接口的應用和優(yōu)勢 480 23.2 接口實現(xiàn)的基礎 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的設計原則和規(guī)范 491 23.4.1 什么是RESTful風格的API 491 23.4.2 RESTful API應遵循的原則 491 23.5 創(chuàng)建RESTful規(guī)范 WebAPI框架 495 23.5.1 程序結(jié)構(gòu)設計 495 23.5.2 架構(gòu)詳解 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 小結(jié) 511 第24章 PHP依賴管理工具Composer 513 24.1 認識Composer 513 24.1.1 什么是Composer 513 24.1.2 Composer的代碼庫在哪里 514 24.1.3 類庫的規(guī)范 515 24.2 Composer的安裝 515 24.2.1 安裝前的準備 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應用案例 521 24.5.1 搜索需要的庫 521 24.5.2 應用前準備 522 24.5.3 應用類庫 523 24.6 小結(jié) 525 第25章 MVC模式與PHP框架 526 25.1 MVC模式在Web中的應用 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模式的關系 529 25.2.4 流行的PHP框架比較 530 25.3 劃分模塊和操作 532 25.3.1 為項目劃分模塊 532 25.3.2 為模塊設置操作 532 25.4 小結(jié) 533 第26章 簡潔優(yōu)雅的Laravel開發(fā)框架 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框架的發(fā)展歷程 536 26.2 安裝Laravel 538 26.2.1 安裝前準備 538 26.2.2 安裝Laravel 5.5 539 26.2.3 Laravel框架的目錄結(jié)構(gòu) 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 數(shù)據(jù)庫操作層(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 構(gòu)建接口模塊 590 26.6.2 封裝返回的統(tǒng)一消息 591 26.6.3 為API增加版本 593 26.6.4 API token認證 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)目標 598 27.2.2 系統(tǒng)功能結(jié)構(gòu) 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 數(shù)據(jù)庫設計說明 606 27.6.1 概念結(jié)構(gòu)設計 606 27.6.2 通過實體得到ER圖 606 27.6.3 邏輯結(jié)構(gòu)設計 607 27.6.4 數(shù)據(jù)庫物理結(jié)構(gòu)設計 608 27.7 程序設計說明 610 27.7.1 環(huán)境部署 611 27.7.2 權限設置 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 導入數(shù)據(jù)庫 618 27.8.3 項目應用 618 27.9 本章作業(yè) 619 27.9.1 任務一:修改網(wǎng)站配置模塊 619 27.9.2 任務二:添加友情鏈接模塊 622 27.10 小結(jié) 624 第28章 在線教育系統(tǒng)EDUPlayer 625 28.1 項目背景 625 28.2 需求分析 625 28.2.1 系統(tǒng)目標 625 28.2.2 前后端分離架構(gòu) 626 28.2.3 系統(tǒng)功能結(jié)構(gòu) 626 28.2.4 權限介紹 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 前臺模塊思維導圖 632 28.5.4 后臺模塊思維導圖 632 28.6 數(shù)據(jù)庫設計說明 633 28.6.1 概念結(jié)構(gòu)設計 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 開啟定時任務 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 關聯(lián)加載約束 667 28.10.3 權限驗證約束 668 28.10.4 開發(fā)新業(yè)務示例 668 28.11 小結(jié) 669 附錄 671 附錄A 編碼規(guī)范 672 附錄B PHP項目的安全和優(yōu)化 683 附錄C PHP 5.3~PHP 5.6中的新特性 695
你還可能感興趣
我要評論
|