PHP從入門到精通(第6版)
內容描述
《PHP從入門到精通(第6版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用PHP進行網絡開發應該掌握的各方面技術。全書分為4篇共25章:基礎知識篇包括初識PHP、PHP環境搭建和開發工具、PHP語言基礎、流程控制語句、字符串操作、正則表達式、PHP數組、PHP與Web頁面交互、PHP與JavaScript交互以及日期和時間;核心技術篇包括Cookie與Session、圖形圖像處理技術、文件系統、面向對象、PHP加密技術、MySQL數據庫基礎、phpMyAdmin圖形化管理工具、PHP操作MySQL數據庫、PDO數據庫抽象層以及ThinkPHP框架;高級應用篇包括Smarty模板技術、PHP與XML技術以及PHP與Ajax技術;項目實戰篇包括應用Smarty模板開發電子商務網站和應用ThinkPHP框架開發編程e學網等內容。
目錄大綱
第1篇 基礎知識
第1章 初識PHP 2
視頻講解:23分鐘
1.1 PHP概述 2
1.1.1 什麽是PHP 2
1.1.2 PHP語言的優勢 3
1.1.3 PHP 7的新特性 3
1.1.4 PHP的發展趨勢 4
1.1.5 PHP的應用領域 5
1.2 PHP 7的執行原理 6
1.3 如何學好PHP 6
1.4 學習資源 7
1.4.1 常用軟件資源 7
1.4.2 常用網上資源 8
1.5 網站建設的基本流程 8
第2章 PHP環境搭建和開發工具 9
視頻講解:69分鐘
2.1 在Windows下使用WampServer 9
2.1.1 PHP開發環境的安裝 9
2.1.2 PHP服務器的啟動與停止 12
2.1.3 PHP開發環境的關鍵配置 12
2.2 在Linux下搭建PHP開發環境 15
2.2.1 安裝Apache服務器 15
2.2.2 安裝MySQL數據庫 16
2.2.3 安裝PHP 7 17
2.3 PHP常用開發工具 19
2.4 第一個PHP實例 20
2.5 實踐與練習 21
第3章 PHP語言基礎 22
視頻講解:168分鐘
3.1 PHP的標記風格 22
3.2 PHP註釋的應用 23
3.3 PHP的數據類型 24
3.3.1 標量數據類型 25
3.3.2 復合數據類型 29
3.3.3 特殊數據類型 29
3.3.4 數據類型轉換 30
3.3.5 檢測數據類型 32
3.4 PHP常量 32
3.4.1 常量的定義和使用 32
3.4.2 預定義常量 34
3.5 PHP變量 35
3.5.1 變量的賦值 35
3.5.2 變量的作用域 36
3.5.3 可變變量 38
3.5.4 PHP預定義變量 38
3.6 PHP運算符 39
3.6.1 算術運算符 39
3.6.2 字符串運算符 40
3.6.3 賦值運算符 41
3.6.4 遞增或遞減運算符 41
3.6.5 位運算符 42
3.6.6 邏輯運算符 42
3.6.7 比較運算符 43
3.6.8 條件運算符 44
3.6.9 運算符的優先級 45
3.7 PHP表達式 46
3.8 PHP函數 46
3.8.1 定義和調用函數 46
3.8.2 在函數間傳遞參數 47
3.8.3 從函數中返回值 48
3.8.4 變量函數 49
3.9 PHP編碼規範 50
3.9.1 什麽是編碼規範 50
3.9.2 PHP的書寫規則 50
3.9.3 PHP的命名規範 51
3.10 實踐與練習 53
第4章 流程控制語句 54
視頻講解:68分鐘
4.1 條件控制語句 54
4.1.1 if語句 54
4.1.2 if…else語句 55
4.1.3 elseif語句 56
4.1.4 switch語句 57
4.2 循環控制語句 59
4.2.1 while循環語句 59
4.2.2 do…while循環語句 60
4.2.3 for循環語句 61
4.2.4 foreach循環語句 61
4.3 跳轉語句 63
4.3.1 break語句 63
4.3.2 continue語句 64
4.4 實踐與練習 65
第5章 字符串操作 66
視頻講解:56分鐘
5.1 字符串的定義方法 66
5.1.1 使用單引號或雙引號定義字符串 66
5.1.2 使用定界符定義字符串 67
5.2 字符串操作 68
5.2.1 去除字符串首尾空格和特殊字符 68
5.2.2 轉義、還原字符串數據 70
5.2.3 獲取字符串的長度 72
5.2.4 截取字符串 73
5.2.5 比較字符串 74
5.2.6 檢索字符串 76
5.2.7 替換字符串 77
5.2.8 格式化字符串 79
5.2.9 分割、合並字符串 80
5.3 實踐與練習 81
第6章 正則表達式 82
視頻講解:33分鐘
6.1 什麽是正則表達式 82
6.2 正則表達式的語法規則 83
6.3 PCRE兼容正則表達式函數 87
6.4 應用正則表達式對用戶註冊信息進行驗證 91
6.5 實踐與練習 93
第7章 PHP數組 94
視頻講解:66分鐘
7.1 什麽是數組 94
7.2 定義數組 95
7.3 輸出數組 97
7.4 二維數組 97
7.5 遍歷數組 97
7.6 數組應用函數 99
7.6.1 字符串與數組的轉換 99
7.6.2 統計數組元素個數 101
7.6.3 查詢數組中指定的元素 102
7.6.4 獲取數組中最後一個元素 103
7.6.5 向數組中添加元素 104
7.6.6 刪除數組中重復的元素 104
7.6.7 綜合運用數組函數實現多文件上傳 105
7.7 實踐與練習 106
第8章 PHP與Web頁面交互 107
視頻講解:66分鐘
8.1 表單 107
8.1.1 創建表單 107
8.1.2 表單元素 108
8.2 在普通的Web頁面中插入表單 111
8.3 獲取表單數據的兩種方法 113
8.3.1 使用POST方法提交表單 113
8.3.2 使用GET方法提交表單 114
8.4 PHP傳遞參數的常用方法 115
8.5 在Web頁面中嵌入PHP腳本 116
8.6 在PHP中獲取表單數據 116
8.6.1 獲取文本框、密碼域、隱藏域、按鈕、文本域的值 117
8.6.2 獲取單選按鈕的值 118
8.6.3 獲取復選框的值 118
8.6.4 獲取下拉列表框/菜單列表框的值 119
8.6.5 獲取文件域的值 121
8.7 對URL傳遞的參數進行編/解碼 122
8.7.1 對URL傳遞的參數進行編碼 122
8.7.2 對URL傳遞的參數進行解碼 123
8.8 PHP與Web表單的綜合應用 124
8.9 實踐與練習 125
第9章 PHP與JavaScript交互 126
視頻講解:64分鐘
9.1 瞭解JavaScript 126
9.2 JavaScript語言基礎 127
9.2.1 JavaScript數據類型 127
9.2.2 JavaScript變量 127
9.2.3 JavaScript註釋 129
9.3 自定義函數 130
9.4 JavaScript流程控制語句 130
9.4.1 條件語句 130
9.4.2 循環語句 134
9.4.3 跳轉語句 135
9.5 JavaScript事件 136
9.6 JavaScript腳本嵌入方式 137
9.6.1 在HTML中嵌入JavaScript腳本 137
9.6.2 應用JavaScript事件調用自定義函數 138
9.6.3 在PHP動態網頁中引用JavaScript文件 139
9.6.4 解決瀏覽器不支持JavaScript的問題 140
9.7 在PHP中調用JavaScript腳本 142
9.7.1 驗證表單元素是否為空 142
9.7.2 製作二級導航菜單 143
9.7.3 控制文本域和復選框 145
9.8 實踐與練習 147
第10章 日期和時間 148
視頻講解:30分鐘
10.1 系統時區設置 148
10.1.1 時區劃分 148
10.1.2 時區設置 148
10.2 PHP日期和時間函數 149
10.2.1 獲得本地化時間戳 149
10.2.2 獲取當前時間戳 150
10.2.3 獲取當前日期和時間 150
10.2.4 獲取日期信息 151
10.2.5 檢驗日期的有效性 152
10.2.6 輸出格式化的日期和時間 153
10.2.7 顯示本地化的日期和時間 154
10.2.8 將日期和時間解析為UNIX時間戳 157
10.3 日期和時間的應用 158
10.3.1 比較時間的先後 158
10.3.2 實現倒計時功能 159
10.3.3 計算頁面腳本的運行時間 159
10.4 實踐與練習 160
第2篇 核心技術
第11章 Cookie與Session 162
視頻講解:68分鐘
11.1 Cookie管理 162
11.1.1 瞭解Cookie 162
11.1.2 創建Cookie 163
11.1.3 讀取Cookie 164
11.1.4 刪除Cookie 165
11.1.5 Cookie的生命周期 166
1.2 Session管理 166
11.2.1 瞭解Session 166
11.2.2 創建會話 167
11.2.3 Session設置時間 169
11.2.4 通過Session判斷用戶的操作權限 171
11.3 Session高級應用 173
11.3.1 Session臨時文件 173
11.3.2 Session緩存 174
11.3.3 Session數據庫存儲 175
11.4 Cookie和Session區別 178
11.5 實踐與練習 178
第12章 圖形圖像處理技術 179
視頻講解:45分鐘
12.1 在PHP中加載GD庫 179
12.2 Jpgraph的安裝與配置 180
12.3 圖形圖像技術的典型應用 181
12.3.1 創建一個簡單的圖像 181
12.3.2 使用GD2函數在照片上添加文字 181
12.3.3 使用圖像處理技術生成驗證碼 183
12.3.4 使用柱形圖統計圖書月銷售量 184
12.3.5 使用折線圖統計圖書月銷售額 185
12.3.6 使用3D餅形圖統計各類商品的年銷售額占比 187
12.4 實踐與練習 188
第13章 文件系統 190
視頻講解:49分鐘
13.1 文件處理 190
13.1.1 打開/關閉文件 190
13.1.2 讀寫文件 191
13.1.3 操作文件 196
13.2 目錄處理 197
13.2.1 打開/關閉目錄 197
13.2.2 瀏覽目錄 198
13.2.3 操作目錄 198
13.3 文件處理的高級應用 199
13.3.1 遠程文件的訪問 199
13.3.2 文件指針 199
13.3.3 鎖定文件 200
13.4 文件上傳 201
13.4.1 配置php.ini文件 201
13.4.2 預定義變量$_FILES 202
13.4.3 文件上傳函數 203
13.4.4 多文件上傳 203
13.5 實踐與練習 204
第14章 面向對象 205
視頻講解:26分鐘
14.1 面向對象編程 205
14.1.1 類 205
14.1.2 對象 206
14.1.3 面向對象編程的三大特點 206
14.2 PHP與對象 206
14.2.1 類的定義 206
14.2.2 成員方法 207
14.2.3 類的實例化 207
14.2.4 成員變量 208
14.2.5 類常量 209
14.2.6 構造方法和析構方法 210
14.2.7 繼承和多態的實現 212
14.2.8 “$this->”和“::”的使用 215
14.2.9 數據隱藏 216
14.2.10 靜態變量(方法) 219
14.3 面向對象的高級應用 220
14.3.1 final關鍵字 220
14.3.2 抽象類 221
14.3.3 接口的使用 222
14.3.4 克隆對象 223
14.3.5 對象比較 225
14.3.6 對象類型檢測 225
14.3.7 魔術方法 226
14.4 中文字符串的截取 230
14.5 實踐與練習 232
第15章 PHP加密技術 233
視頻講解:23分鐘
15.1 PHP加密函數 233
15.1.1 使用crypt()函數進行加密 233
15.1.2 使用md5()函數進行加密 235
15.1.3 使用sha1()函數進行加密 236
15.2 PHP加密擴展庫 237
15.2.1 Mcrypt擴展庫 237
15.2.2 Mhash擴展庫 240
15.3 實踐與練習 241
第16章 MySQL數據庫基礎 242
視頻講解:56分鐘
16.1 MySQL概述 242
16.2 啟動和關閉MySQL服務器 243
16.3 操作MySQL數據庫 244
16.3.1 創建數據庫 244
16.3.2 選擇數據庫 245
16.3.3 查看數據庫 245
16.3.4 刪除數據庫 245
16.4 MySQL數據類型 246
16.4.1 數值類型 246
16.4.2 字符串類型 247
16.4.3 日期和時間類型 248
16.5 操作數據表 248
16.5.1 創建數據表 249
16.5.2 查看表結構 250
16.5.3 修改表結構 251
16.5.4 重命名數據表 251
16.5.5 刪除數據表 252
16.6 數據表記錄的更新操作 252
16.7 數據表記錄的查詢操作 254
16.8 MySQL中的特殊字符 257
16.9 實踐與練習 258
第17章 phpMyAdmin圖形化管理工具 259
視頻講解:10分鐘
17.1 認識phpMyAdmin 259
17.2 phpMyAdmin的使用 259
17.2.1 操作數據庫 260
17.2.2 操作數據表 261
17.2.3 使用SQL語句操作數據表 263
17.2.4 管理數據記錄 267
17.2.5 生成和執行MySQL數據庫腳本 268
17.3 實踐與練習 269
第18章 PHP操作MySQL數據庫 270
視頻講解:52分鐘
18.1 PHP操作MySQL數據庫的方法 270
18.1.1 連接MySQL服務器 270
18.1.2 選擇MySQL數據庫 271
18.1.3 執行SQL語句 272
18.1.4 將結果集返回到數組中 273
18.1.5 從結果集中獲取一行作為對象 275
18.1.6 從結果集中獲取一行作為枚舉數組 276
18.1.7 從結果集中獲取一行作為關聯數組 276
18.1.8 獲取查詢結果集中的記錄數 277
18.1.9 釋放內存 278
18.1.10 關閉連接 278
18.1.11 連接與關閉MySQL服務器的最佳時機 279
18.2 管理MySQL數據庫中的數據 280
18.2.1 添加數據 280
18.2.2 編輯數據 281
18.2.3 刪除數據 283
18.2.4 批量數據操作 284
18.3 實踐與練習 285
第19章 PDO數據庫抽象層 286
視頻講解:48分鐘
19.1 什麽是PDO 286
19.2 PDO連接數據庫 287
19.2.1 PDO構造函數 287
19.2.2 DSN詳解 288
19.3 PDO中執行SQL語句 288
19.4 PDO中獲取結果集 289
19.4.1 fetch方法 289
19.4.2 fetchAll方法 291
19.4.3 fetchColumn方法 292
19.5 PDO中捕獲SQL語句中的錯誤 293
19.5.1 使用默認模式——PDO::ERRMODE_SILENT 293
19.5.2 使用警告模式——PDO::ERRMODE_WARNING 294
19.5.3 使用異常模式——PDO::ERRMODE_EXCEPTION 296
19.6 PDO錯誤處理 297
19.6.1 errorCode方法 297
19.6.2 errorInfo方法 298
19.7 PDO事務處理 300
19.8 PDO存儲過程 301
19.9 實踐與練習 303
第20章 ThinkPHP框架 304
視頻講解:162分鐘
20.1 ThinkPHP簡介 304
20.1.1 ThinkPHP框架的主要特性 304
20.1.2 環境要求 305
20.1.3 下載和安裝 305
20.2 ThinkPHP基礎 306
20.2.1 目錄結構 306
20.2.2 命名規範 308
20.2.3 架構總覽 308
20.3 ThinkPHP的配置 312
20.3.1 配置基礎 312
20.3.2 加載配置文件和目錄 312
20.3.3 入口配置 313
20.3.4 資源配置 315
20.3.5 調試配置 315
20.4 路由 316
20.4.1 路由概述 316
20.4.2 路由模式 316
20.4.3 定義路由 317
20.4.4 路由表達式 319
20.4.5 路由地址 320
20.4.6 路由分組 321
20.4.7 MISS路由 321
20.5 控制器 322
20.5.1 控制器的定義 322
20.5.2 跳轉和重定向 323
20.6 數據庫 324
20.6.1 數據庫的連接 324
20.6.2 數據庫基礎操作 327
20.7 模型 331
20.7.1 模型的定義 331
20.7.2 模型基礎操作 333
20.8 視圖 338
20.8.1 視圖渲染 338
20.8.2 視圖賦值 340
20.9 模板 341
20.9.1 變量輸出 342
20.9.2 使用函數 343
20.9.3 內置標簽 343
20.10 實踐與練習 346
第3篇 高級應用
第21章 Smarty模板技術 348
視頻講解:55分鐘
21.1 Smarty簡介 348
21.2 Smarty的安裝配置 349
21.2.1 Smarty的下載和安裝 349
21.2.2 第一個Smarty程序 349
21.2.3 Smarty的配置 351
21.3 Smarty模板設計 352
21.3.1 Smarty模板文件 352
21.3.2 註釋 353
21.3.3 變量 353
21.3.4 修飾變量 355
21.3.5 流程控制 357
21.4 Smarty程序設計 360
21.4.1 Smarty中的常用方法 360
21.4.2 Smarty的配置變量 361
21.5 Smarty模板的應用 361
21.5.1 將Smarty的配置方法封裝到類中 361
21.5.2 Smarty+ADODB整合應用 364
21.6 實踐與練習 365
第22章 PHP與XML技術 366
視頻講解:24分鐘
22.1 XML概述 366
22.2 XML語法 366
22.3 在PHP中創建XML文檔 370
22.4 SimpleXML類庫 370
22.4.1 創建SimpleXML對象 370
22.4.2 遍歷所有子元素 371
22.4.3 遍歷所有屬性 372
22.4.4 訪問特定結點元素和屬性 373
22.4.5 修改XML數據 374
22.4.6 保存XML文檔 375
22.5 動態創建XML文檔 375
22.6 實踐與練習 376
第23章 PHP與Ajax技術 377
視頻講解:42分鐘
23.1 Ajax概述 377
23.2 Ajax使用的技術 378
23.3 Ajax開發需要註意的幾個問題 381
23.4 PHP中Ajax技術的典型應用 382
23.4.1 檢測用戶名是否已被占用 382
23.4.2 博客文章類別添加 384
23.5 實踐與練習 388
第4篇 項目實戰
第24章 應用Smarty模板開發電子商務網站 390
視頻講解:141分鐘
24.1 項目設計思路 390
24.1.1 功能闡述 390
24.1.2 功能結構 391
24.1.3 開發環境 391
24.1.4 文件夾組織結構 392
24.2 數據庫設計 393
24.2.1 數據庫分析 393
24.2.2 創建數據庫和數據表 394
24.3 公共文件設計 396
24.3.1 數據庫連接、管理和分頁類文件 396
24.3.2 Smarty模板配置類文件 399
24.3.3 執行類的實例化文件 399
24.4 前臺首頁設計 400
24.4.1 前臺首頁技術分析 401
24.4.2 前臺首頁實現過程 401
24.5 登錄模塊設計 403
24.5.1 登錄模塊概述 403
24.5.2 登錄模塊技術分析 403
24.5.3 用戶註冊 405
24.5.4 用戶登錄 406
24.5.5 找回密碼 408
24.6 會員信息模塊設計 413
24.6.1 會員信息模塊概述 413
24.6.2 會員信息模塊技術分析 413
24.6.3 會員中心 414
24.6.4 安全退出 417
24.7 商品展示模塊設計 418
24.7.1 商品展示模塊概述 418
24.7.2 商品展示模塊技術分析 418
24.7.3 商品展示模塊的實現過程 419
24.8 購物車模塊設計 422
24.8.1 購物車模塊概述 422
24.8.2 購物車模塊技術分析 423
24.8.3 購物車展示 425
24.8.4 更改商品數量 426
24.8.5 刪除商品 427
24.8.6 保存購物車 429
24.9 收銀台模塊設計 431
24.9.1 收銀台模塊概述 431
24.9.2 收銀台模塊技術分析 432
24.9.3 顯示訂單 432
24.9.4 填寫訂單 432
24.9.5 處理訂單 433
24.10 後台首頁設計 434
24.10.1 後台首頁概述 434
24.10.2 後台首頁技術分析 435
24.10.3 後台首頁實現過程 437
24.11 開發常見問題與解決 439
第25章 應用ThinkPHP框架開發編程e學網 441
視頻講解:89分鐘
25.1 項目設計思路 441
25.2 系統開發必備 443
25.2.1 系統開發環境 443
25.2.2 文件夾組織結構 444
25.3 數據庫設計 444
25.3.1 數據庫分析 444
25.3.2 數據表設計 444
25.3.3 連接數據庫 446
25.4 前臺模塊設計 447
25.4.1 視頻首頁設計 447
25.4.2 登錄註冊頁面設計 449
25.4.3 視頻列表頁面設計 454
25.4.4 視頻播放頁面設計 455
25.4.5 會員中心頁面設計 458
25.5 後台模塊設計 459
25.5.1 課程管理 459
25.5.2 資源管理 461
25.5.3 註冊會員 464
25.5.4 賬號管理 464