PHP與MySQL是Web應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)的經(jīng)典組合,具有開(kāi)放源代碼、支持多種操作系統(tǒng)平臺(tái)等特點(diǎn),被國(guó)內(nèi)外眾多網(wǎng)站廣泛采用,具有很強(qiáng)的實(shí)用性。本書(shū)由淺入深、循序漸進(jìn),系統(tǒng)地介紹了PHP的相關(guān)知識(shí)及其在Web應(yīng)用程序開(kāi)發(fā)中的關(guān)鍵技術(shù)。全書(shū)共14章,包括PHP概述與開(kāi)發(fā)運(yùn)行環(huán)境搭建、PHP語(yǔ)法基礎(chǔ)、PHP流程控制語(yǔ)句、PHP函數(shù)、PHP數(shù)組應(yīng)用、Web互動(dòng)與會(huì)話控制技術(shù)、MySQL數(shù)據(jù)庫(kù)、PHP操作MySQL數(shù)據(jù)庫(kù)、PHP面向?qū)ο缶幊獭⒒赑DO數(shù)據(jù)庫(kù)抽象層、PHP與MVC開(kāi)發(fā)模式、文件和目錄操作、PHP圖形圖像處理、程序調(diào)試與錯(cuò)誤處理。 本書(shū)內(nèi)容豐富、講解深入,適用于初、中級(jí)PHP用戶,既可以作為高等學(xué)校"Web程序設(shè)計(jì)”"網(wǎng)站開(kāi)發(fā)與設(shè)計(jì)”課程的教材,又可以作為Web應(yīng)用程序開(kāi)發(fā)人員的參考用書(shū)。
李輝,博士,中國(guó)農(nóng)業(yè)大學(xué)農(nóng)業(yè)大數(shù)據(jù)實(shí)驗(yàn)室主任,教育部評(píng)估中心工程教育專業(yè)認(rèn)證專家組成員,主要從事大數(shù)據(jù)技術(shù)應(yīng)用、高等教育教學(xué)等方面的研究工作,主講《大數(shù)據(jù)技術(shù)及應(yīng)用概論》等課程,發(fā)表了《本科大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)及資源建設(shè)的思考與探索》等多篇教育教學(xué)相關(guān)論文,主編了《數(shù)據(jù)庫(kù)系統(tǒng)原理及MySQL應(yīng)用教程》等教材,建設(shè)了農(nóng)業(yè)大數(shù)據(jù)實(shí)驗(yàn)室,搭建了大數(shù)據(jù)教學(xué)實(shí)驗(yàn)實(shí)訓(xùn)平臺(tái),完成了數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)主專業(yè)和雙學(xué)位專業(yè)人才培養(yǎng)方案的制定工作。目前正在開(kāi)展教育部高教司產(chǎn)學(xué)合作協(xié)同育人項(xiàng)目 "基于大數(shù)據(jù)的分布式架構(gòu)應(yīng)用課程群開(kāi)發(fā)” 、"校企共建大數(shù)據(jù)聯(lián)合實(shí)驗(yàn)室項(xiàng)目”以及"基于可視化的農(nóng)產(chǎn)品安全大數(shù)據(jù)分析系統(tǒng)研究”、"基于全景技術(shù)的實(shí)時(shí)可視化互動(dòng)農(nóng)業(yè)系統(tǒng)應(yīng)用與示范”等課題的研究工作。參與國(guó)家科技支撐計(jì)劃課題和公益性行業(yè)(農(nóng)業(yè))科研專項(xiàng)縱向課題研究10余項(xiàng),發(fā)表論文20多篇,申請(qǐng)軟件著作權(quán)20多個(gè),申請(qǐng)專利3項(xiàng)。
目錄
第1章 PHP概述與開(kāi)發(fā)運(yùn)行環(huán)境搭建 1
1.1 Web技術(shù)與PHP 1
1.1.1 Web技術(shù) 1
1.1.2 PHP概述 3
1.1.3 PHP運(yùn)行環(huán)境 4
1.1.4 PHP的工作原理 6
1.1.5 如何學(xué)好PHP編程 7
1.2 網(wǎng)頁(yè)的前端技術(shù) 7
1.2.1 HTML基礎(chǔ)知識(shí) 7
1.2.2 HTML表單 12
1.2.3 表單數(shù)據(jù)的接收 17
1.3 集成開(kāi)發(fā)環(huán)境搭建 18
1.3.1 PHP運(yùn)行環(huán)境XAMPP的安裝 18
1.3.2 PHP開(kāi)發(fā)常見(jiàn)的編輯工具 22
1.3.3 NetBeans的安裝和使用 23
1.3.4 PHP程序開(kāi)發(fā)流程 27
思考與練習(xí) 27
第2章 PHP語(yǔ)法基礎(chǔ) 29
2.1 PHP基本語(yǔ)法 29
2.1.1 PHP標(biāo)記 29
2.1.2 編碼規(guī)范 30
2.1.3 代碼注釋 33
2.1.4 PHP語(yǔ)句及語(yǔ)句塊 34
2.1.5 PHP標(biāo)識(shí)符與關(guān)鍵字 35
2.1.6 PHP大小寫敏感 35
2.2 PHP常量 36
2.2.1 聲明和使用常量 36
2.2.2 預(yù)定義常量 38
2.3 PHP變量 39
2.3.1 聲明變量 39
2.3.2 變量賦值 40
2.3.3 可變變量 41
2.3.4 外部變量 42
2.3.5 變量或常量數(shù)據(jù)類型查看函數(shù) 42
2.4 PHP數(shù)據(jù)類型 43
2.4.1 標(biāo)量數(shù)據(jù)類型 44
2.4.2 復(fù)合數(shù)據(jù)類型 48
2.4.3 特殊數(shù)據(jù)類型 50
2.4.4 偽類型 51
2.4.5 數(shù)據(jù)類型轉(zhuǎn)換 52
2.4.6 檢測(cè)數(shù)據(jù)類型 54
2.4.7 PHP數(shù)據(jù)的輸出 54
2.5 PHP運(yùn)算符 56
2.5.1 算術(shù)運(yùn)算符 56
2.5.2 字符串運(yùn)算符 57
2.5.3 賦值運(yùn)算符 57
2.5.4 自加或自減運(yùn)算符 58
2.5.5 邏輯運(yùn)算符 59
2.5.6 比較運(yùn)算符 60
2.5.7 條件運(yùn)算符 61
2.5.8 NULL合并運(yùn)算符 61
2.5.9 組合比較運(yùn)算符 61
2.5.10 位運(yùn)算符 62
2.5.11 錯(cuò)誤控制運(yùn)算符 62
2.5.12 運(yùn)算符的使用規(guī)則 63
2.6 表達(dá)式與語(yǔ)句 63
思考與練習(xí) 63
第3章 PHP流程控制語(yǔ)句 66
3.1 PHP的三種控制結(jié)構(gòu) 66
3.2 選擇結(jié)構(gòu)語(yǔ)句 68
3.2.1 if語(yǔ)句 68
3.2.2 switch語(yǔ)句 71
3.3 循環(huán)結(jié)構(gòu)語(yǔ)句 72
3.3.1 while循環(huán)語(yǔ)句 72
3.3.2 do-while循環(huán)語(yǔ)句 73
3.3.3 for循環(huán)語(yǔ)句 75
3.3.4 foreach循環(huán)語(yǔ)句 76
3.4 跳轉(zhuǎn)語(yǔ)句 77
3.4.1 break語(yǔ)句 77
3.4.2 continue語(yǔ)句 78
3.4.3 goto語(yǔ)句 78
3.4.4 return語(yǔ)句 79
3.4.5 exit語(yǔ)句 79
3.5 流程替代語(yǔ)法 80
3.6 PHP文件間包含函數(shù)的使用 81
3.6.1 include()函數(shù) 81
3.6.2 include()函數(shù)與require()函數(shù)的區(qū)別 82
3.6.3 include_once()函數(shù)和require_once()函數(shù) 83
思考與練習(xí) 84
第4章 PHP函數(shù) 86
4.1 函數(shù) 86
4.1.1 定義和調(diào)用函數(shù) 86
4.1.2 在函數(shù)間傳遞參數(shù) 88
4.1.3 從函數(shù)中返回值 89
4.1.4 變量函數(shù) 90
4.1.5 對(duì)函數(shù)的引用 91
4.1.6 取消引用 91
4.1.7 變量作用域 92
4.1.8 函數(shù)的高級(jí)調(diào)用 94
4.2 PHP變量函數(shù)庫(kù) 98
4.3 字符串與PHP字符串函數(shù)庫(kù) 99
4.3.1 初識(shí)字符串 99
4.3.2 去除字符串首尾空白字符和特殊字符 99
4.3.3 截取字符串 100
4.3.4 分割、合成字符串 101
4.3.5 MD5加密函數(shù) 102
4.4 PHP日期時(shí)間函數(shù)庫(kù) 103
4.4.1 系統(tǒng)時(shí)區(qū)設(shè)置 103
4.4.2 格式化日期和時(shí)間 103
4.4.3 獲取日期和時(shí)間信息 104
4.5 正則表達(dá)式在PHP中的應(yīng)用 105
4.5.1 正則表達(dá)式使用的常用函數(shù) 105
4.5.2 正則表達(dá)式的基本語(yǔ)法 107
4.5.3 PCRE兼容正則表達(dá)式函數(shù) 111
4.5.4 正則表達(dá)式的其他特性 114
思考與練習(xí) 116
第5章 PHP數(shù)組應(yīng)用 118
5.1 數(shù)組的基本概念 118
5.1.1 為什么引入數(shù)組 118
5.1.2 數(shù)組的概念 119
5.1.3 數(shù)組的類型 119
5.2 數(shù)組創(chuàng)建和刪除 120
5.2.1 創(chuàng)建數(shù)組 120
5.2.2 數(shù)組刪除 123
5.3 數(shù)組遍歷和輸出 123
5.3.1 訪問(wèn)數(shù)組元素 123
5.3.2 數(shù)組遍歷方式 125
5.3.3 通過(guò)數(shù)組指針遍歷數(shù)組 128
5.3.4 數(shù)組元素輸出 129
5.4 數(shù)組的處理函數(shù) 129
5.4.1 獲。ㄒ瞥⿺(shù)組中的最后或開(kāi)頭一個(gè)元素 129
5.4.2 去除數(shù)組中的重復(fù)元素 130
5.4.3 獲取數(shù)組中指定元素的鍵名 131
5.4.4 數(shù)組鍵與值的排序 132
5.4.5 字符串與數(shù)組的轉(zhuǎn)換 132
5.5 預(yù)定義數(shù)組 133
思考與練習(xí) 137
第6章 Web互動(dòng)與會(huì)話控制技術(shù) 139
6.1 Web服務(wù)器交互原理 139
6.2 頁(yè)面間的參數(shù)傳遞方式 139
6.3 瀏覽器端數(shù)據(jù)提交方式 140
6.3.1 GET提交方式 140
6.3.2 POST提交方式 141
6.3.3 兩種提交方式的比較 142
6.3.4 PHP獲取表單信息 142
6.3.5 URL操作 146
6.4 在PHP腳本中使用JavaScript編程 147
6.4.1 JavaScript腳本的使用 147
6.4.2 數(shù)據(jù)類型和變量 148
6.4.3 彈出警告對(duì)話框 148
6.4.4 彈出確認(rèn)對(duì)話框 149
6.4.5 document對(duì)象 149
6.4.6 彈出新窗口 151
6.5 Cookie技術(shù) 152
6.5.1 了解Cookie 152
6.5.2 創(chuàng)建Cookie 153
6.5.3 讀取Cookie 154
6.5.4 刪除Cookie 155
6.5.5 Cookie的生命周期 155
6.6 Session技術(shù) 156
6.6.1 了解Session 157
6.6.2 創(chuàng)建Session 157
6.6.3 使用Session設(shè)置時(shí)間 159
6.7 Session高級(jí)應(yīng)用 161
6.7.1 Session臨時(shí)文件 161
6.7.2 Session緩存 161
6.7.3 Session綜合應(yīng)用案例 162
6.8 PHP頁(yè)面跳轉(zhuǎn) 164
6.8.1 header()函數(shù) 164
6.8.2 meta標(biāo)簽 164
6.8.3 JavaScript腳本 165
6.8.4 在HTML標(biāo)記中實(shí)現(xiàn)跳轉(zhuǎn) 165
思考與練習(xí) 165
第7章 MySQL數(shù)據(jù)庫(kù) 168
7.1 MySQL概述 168
7.2 操作MySQL數(shù)據(jù)庫(kù) 169
7.3 操作MySQL數(shù)據(jù)表 170
7.3.1 創(chuàng)建數(shù)據(jù)表 170
7.3.2 查看數(shù)據(jù)表 171
7.3.3 修改數(shù)據(jù)表 171
7.3.4 重命名數(shù)據(jù)表 172
7.3.5 刪除數(shù)據(jù)表 172
7.4 操作MySQL數(shù)據(jù) 173
7.4.1 向數(shù)據(jù)表中添加數(shù)據(jù) 173
7.4.2 更新數(shù)據(jù)表中的數(shù)據(jù) 173
7.4.3 刪除數(shù)據(jù)表中的數(shù)據(jù) 174
7.4.4 查詢數(shù)據(jù)表中的數(shù)據(jù) 174
7.5 MySQL數(shù)據(jù)類型 177
7.5.1 數(shù)字類型 177
7.5.2 字符串類型 177
7.5.3 日期和時(shí)間類型 178
7.6 phpMyAdmin圖形化管理工具 178
7.6.1 管理數(shù)據(jù)庫(kù) 178
7.6.2 管理數(shù)據(jù)表 180
7.6.3 管理數(shù)據(jù)記錄 181
7.6.4 導(dǎo)入/導(dǎo)出數(shù)據(jù) 186
思考與練習(xí) 187
第8章 PHP操作MySQL數(shù)據(jù)庫(kù) 191
8.1 PHP操作MySQL數(shù)據(jù)庫(kù)的一般步驟 191
8.2 PHP顯示MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)的函數(shù)應(yīng)用 192
8.2.1 數(shù)據(jù)準(zhǔn)備 192
8.2.2 建立與MySQL服務(wù)器的連接 193
8.2.3 顯示MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù) 195
8.2.4 數(shù)據(jù)分頁(yè)顯示的原理及實(shí)現(xiàn) 203
8.3 PHP更新MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)的函數(shù)應(yīng)用 206
8.3.1 從頁(yè)面獲取數(shù)據(jù)并插入數(shù)據(jù)庫(kù) 206
8.3.2 根據(jù)表單內(nèi)容修改數(shù)據(jù)庫(kù)數(shù)據(jù) 208
8.3.3 刪除數(shù)據(jù)庫(kù)數(shù)據(jù) 212
8.4 預(yù)處理與參數(shù)綁定 213
8.4.1 什么是預(yù)處理 213
8.4.2 預(yù)處理的實(shí)現(xiàn) 213
8.5 PHP操作MySQL數(shù)據(jù)庫(kù)常見(jiàn)錯(cuò)誤信息及分析 215
8.6 mysql()函數(shù)與mysqli()函數(shù)連接數(shù)據(jù)庫(kù)的區(qū)別與用法 216
思考與練習(xí) 217
第9章 PHP面向?qū)ο缶幊?219
9.1 類與對(duì)象 219
9.2 類的聲明 221
9.2.1 類的定義 221
9.2.2 成員屬性 222
9.2.3 成員方法 222
9.3 類的實(shí)例化 223
9.3.1 創(chuàng)建(實(shí)例化)對(duì)象 223
9.3.2 訪問(wèn)類中成員 224
9.3.3 特殊的訪問(wèn)方法:“$this”和“::” 225
9.3.4 構(gòu)造方法(函數(shù))和析構(gòu)方法(函數(shù)) 226
9.4 面向?qū)ο蟮姆庋b性 228
9.4.1 public關(guān)鍵字 229
9.4.2 private關(guān)鍵字 229
9.4.3 protected關(guān)鍵字 229
9.4.4 靜態(tài)屬性和靜態(tài)方法 230
9.5 面向?qū)ο蟮睦^承性 231
9.5.1 類的繼承:extends關(guān)鍵字 232
9.5.2 類的繼承:parent::關(guān)鍵字 232
9.5.3 覆蓋父類方法 233
9.5.4 final關(guān)鍵字 234
9.5.5 trait機(jī)制 235
9.6 抽象類和接口 235
9.6.1 抽象類 236
9.6.2 接口 237
9.7 面向?qū)ο蟮亩鄳B(tài)性 238
9.7.1 通過(guò)繼承實(shí)現(xiàn)多態(tài) 239
9.7.2 通過(guò)接口實(shí)現(xiàn)多態(tài) 239
9.8 面向?qū)ο蟮哪g(shù)方法 240
9.8.1 __set()方法和__get()方法 240
9.8.2 __isset()方法和__unset()方法 241
9.8.3 __call()方法 242
9.8.4 __toString()方法 242
9.8.5 __autoload()方法 243
9.8.6 __clone()方法 244
9.8.7 自動(dòng)加載類:spl_autoload_register()方法 244
9.9 兩種常見(jiàn)的設(shè)計(jì)模式 246
思考與練習(xí) 248
第10章 PDO數(shù)據(jù)庫(kù)抽象層 250
10.1 PDO概述 250
10.2 PDO連接數(shù)據(jù)庫(kù) 252
10.3 在PDO中執(zhí)行SQL語(yǔ)句 253
10.3.1 PDO::exec()方法 253
10.3.2 PDO::query()方法 254
10.3.3 預(yù)處理語(yǔ)句prepare()和execute() 255
10.4 在PDO中獲取結(jié)果集 257
10.4.1 fetch()方法 257
10.4.2 fetchAll()方法 259
10.4.3 fetchColumn()方法 260
10.5 在PDO中捕獲SQL語(yǔ)句的錯(cuò)誤 261
10.5.1 默認(rèn)模式:PDO::ERRMODE_SILENT 261
10.5.2 警告模式:PDO::ERRMODE_WARNING 262
10.5.3 異常模式:PDO::ERRMODE_EXCEPTION 263
10.6 PDO中的錯(cuò)誤處理 265
10.6.1 errorCode()方法 265
10.6.2 errorInfo()方法 266
思考與練習(xí) 267
第11章 PHP與MVC開(kāi)發(fā)模式 269
11.1 MVC概述 269
11.1.1 MVC介紹 269
11.1.2 MVC的組成 270
11.2 PHP開(kāi)發(fā)中的模板技術(shù) 271
11.2.1 模板與模板引擎 271
11.2.2 在PHP程序中使用模板 272
11.2.3 Smarty模板引擎 273
11.3 基于MVC的PHP開(kāi)發(fā)框架簡(jiǎn)介 275
11.4 CodeIgniter框架應(yīng)用 277
11.4.1 CodeIgniter的特點(diǎn) 278
11.4.2 安裝CodeIgniter 278
11.4.3 CodeIgniter的Controller 278
11.4.4 CodeIgniter的Model 280
11.4.5 CodeIgniter的View 280
11.5 ThinkPHP框架的應(yīng)用 282
11.5.1 ThinkPHP的安裝與項(xiàng)目創(chuàng)建 282
11.5.2 項(xiàng)目的創(chuàng)建 283
11.5.3 項(xiàng)目的配置 284
11.5.4 控制器類的創(chuàng)建 285
11.5.5 模型類的創(chuàng)建 287
11.5.6 模板文件的編寫 288
11.6 ThinkPHP應(yīng)用實(shí)例——在線日程表 292
思考與練習(xí) 295
第12章 文件和目錄操作 296
12.1 文件概述 296
12.1.1 文件類型 296
12.1.2 文件的常見(jiàn)屬性 297
12.2 基本的文件操作 299
12.2.1 打開(kāi)文件 299
12.2.2 讀取文件內(nèi)容 300
12.2.3 向文件中寫入數(shù)據(jù) 304
12.2.4 關(guān)閉文件指針 305
12.2.5 文件的其他操作 306
12.3 常用的目錄操作 306
12.3.1 打開(kāi)指定目錄 306
12.3.2 讀取目錄結(jié)構(gòu) 307
12.3.3 關(guān)閉目錄 308
12.4 文件上傳處理 308
12.4.1 相關(guān)設(shè)置 308
12.4.2 全局變量$_FILES應(yīng)用 308
12.4.3 文件上傳與處理函數(shù) 309
12.4.4 多文件上傳 312
12.4.5 文件下載 313
思考與練習(xí) 314
第13章 PHP圖形圖像處理 315
13.1 了解GD2函數(shù)庫(kù) 315
13.2 設(shè)置GD2函數(shù)庫(kù) 315
13.3 常用的圖像處理 316
13.3.1 創(chuàng)建畫布 316
13.3.2 顏色處理 317
13.3.3 繪制文字 318
13.3.4 輸出圖像 321
13.3.5 銷毀圖像 322
13.4 運(yùn)用Jpgraph類庫(kù)繪制圖像 322
13.4.1 Jpgraph類庫(kù)簡(jiǎn)介 322
13.4.2 Jpgraph類庫(kù)的安裝 322
13.4.3 使用柱形圖分析產(chǎn)品月銷售量 323
13.4.4 兩類圖書(shū)銷售的走勢(shì) 324
13.4.5 使用3D餅狀圖展示不同月份的業(yè)績(jī) 326
思考與練習(xí) 327
第14章 程序調(diào)試與錯(cuò)誤處理 328
14.1 程序調(diào)試的基本流程 328
14.2 常見(jiàn)的錯(cuò)誤類型 329
14.2.1 語(yǔ)法錯(cuò)誤 329
14.2.2 語(yǔ)義錯(cuò)誤 330
14.2.3 邏輯錯(cuò)誤 331
14.2.4 注釋錯(cuò)誤 331
14.2.5 運(yùn)行錯(cuò)誤 332
14.3 錯(cuò)誤處理機(jī)制 332
14.3.1 控制錯(cuò)誤顯示及顯示方式 332
14.3.2 控制錯(cuò)誤級(jí)別 333
14.4 常用程序調(diào)試方法 333
14.4.1 用die語(yǔ)句進(jìn)行調(diào)試 334
14.4.2 用mysql_error()函數(shù)輸出SQL語(yǔ)句的錯(cuò)誤 334
14.4.3 用try-catch語(yǔ)句拋出并捕獲異常 335
14.5 錯(cuò)誤處理技巧 336
14.5.1 用“@”隱藏錯(cuò)誤 336
14.5.2 自定義錯(cuò)誤信息 337
思考與練習(xí) 337
參考文獻(xiàn) 338