第1篇 基 礎 知 識
第1章 初識PHP 3
視頻講解:23分鍾
1.1 PHP概述 4
1.1.1 什麼是PHP 4
1.1.2 PHP語言的優勢 4
1.1.3 PHP 5的新特性 5
1.1.4 PHP的發展趨勢 5
1.1.5 PHP的應用領域 6
1.2 擴展庫 7
1.3 如何學好PHP 9
1.4 學習資源 10
1.4.1 常用軟件資源 10
1.4.2 常用網上資源 11
1.4.3 主要圖書網站 11
1.5 網站建設的基本流程 12
1.6 小結 12
第2章 PHP環境搭建和開發工具 13
視頻講解:36分鍾
2.1 在Windows下使用AppServ
組閤包 14
2.2 在Linux下的安裝配置 16
2.2.1 安裝Apache服務器 17
2.2.2 安裝MySQL數據庫 18
2.2.3 安裝PHP 5語言 18
2.3 PHP常用開發工具 20
2.4 第一個PHP實例 21
2.5 小結 23
2.6 練習與實踐 23
第3章 PHP語言基礎 25
視頻講解:1小時55分鍾
3.1 PHP標記風格 26
3.2 PHP注釋的應用 27
3.3 PHP的數據類型 28
3.3.1 標量數據類型 28
3.3.2 復閤數據類型 33
3.3.3 特殊數據類型 33
3.3.4 轉換數據類型 35
3.3.5 檢測數據類型 36
3.4 PHP常量 37
3.4.1 聲明和使用常量 37
3.4.2 預定義常量 38
3.5 PHP變量 39
3.5.1 變量聲明及使用 39
3.5.2 變量作用域 41
3.5.3 可變變量 43
3.5.4 PHP預定義變量 43
3.6 PHP運算符 44
3.6.1 算術運算符 44
3.6.2 字符串運算符 45
3.6.3 賦值運算符 46
3.6.4 位運算符 46
3.6.5 邏輯運算符 47
3.6.6 比較運算符 48
3.6.7 錯誤控製運算符 49
3.6.8 三元運算符 49
3.6.9 運算符的優先順序和結閤規則 50
3.7 PHP的錶達式 50
3.8 PHP函數 51
3.8.1 定義和調用函數 51
3.8.2 在函數間傳遞參數 52
3.8.3 從函數中返迴值 54
3.8.4 變量函數 54
3.8.5 對函數的引用 55
3.8.6 取消引用 55
3.9 PHP編碼規範 56
3.9.1 什麼是編碼規範 56
3.9.2 PHP書寫規則 57
3.9.3 PHP命名規則 58
3.10 小結 60
3.11 練習與實踐 60
第4章 流程控製語句 61
視頻講解:46分鍾
4.1 條件控製語句 62
4.1.1 if語句 62
4.1.2 if…else語句 63
4.1.3 elseif語句 64
4.1.4 switch…case多重判斷語句 65
4.2 循環控製語句 67
4.2.1 while循環語句 68
4.2.2 do…while循環語句 68
4.2.3 for循環語句 69
4.2.4 foreach循環語句 70
4.2.5 流程控製的另一種書寫格式 71
4.2.6 使用break/continue語句跳齣循環 72
4.3 小結 75
4.4 練習與實踐 75
第5章 字符串操作 77
視頻講解:1小時13分鍾
5.1 字符串簡介 78
5.2 單引號和雙引號的區彆 78
5.3 字符串的連接符 79
5.4 字符串操作 80
5.4.1 去除字符串首尾空格和特殊字符 80
5.4.2 轉義、還原字符串數據 82
5.4.3 獲取字符串的長度 85
5.4.4 截取字符串 86
5.4.5 比較字符串 87
5.4.6 檢索字符串 90
5.4.7 替換字符串 91
5.4.8 格式化字符串 94
5.4.9 分割字符串 94
5.4.10 閤成字符串 95
5.5 小結 96
5.6 練習與實踐 96
第6章 正則錶達式 97
視頻講解:43分鍾
6.1 什麼是正則錶達式 98
6.2 正則錶達式語法規則 98
6.2.1 行定位符(^和$) 99
6.2.2 單詞定界符(、B) 99
6.2.3 字符類([ ]) 99
6.2.4 選擇字符(|) 100
6.2.5 連字符(-) 100
6.2.6 排除字符([^]) 101
6.2.7 限定符(? * + {n,m}) 101
6.2.8 點號字符(.) 101
6.2.9 轉義字符() 102
6.2.10 反斜綫() 102
6.2.11 括號字符(()) 103
6.2.12 反嚮引用 103
6.2.13 模式修飾符 104
6.3 POSIX擴展正則錶達式函數 104
6.3.1 ereg()函數和eregi()函數 105
6.3.2 ereg_replace()函數和eregi_replace()
函數 105
6.3.3 split()函數和spliti()函數 105
6.4 PCRE兼容正則錶達式函數 106
6.4.1 preg_grep()函數 106
6.4.2 preg_match()函數和preg_match_all()
函數 107
6.4.3 preg_quote()函數 107
6.4.4 preg_replace()函數 108
6.4.5 preg_replace_callback()函數 109
6.4.6 preg_split()函數 109
6.5 應用正則錶達式對用戶注冊信息
進行驗證 109
6.6 小結 112
6.7 練習與實踐 112
第7章 PHP數組 113
視頻講解:1小時23分鍾
7.1 什麼是數組 114
7.2 聲明數組 114
7.3 數組的類型 116
7.3.1 數字索引數組 116
7.3.2 關聯數組 116
7.4 輸齣數組 117
7.5 數組的構造 118
7.5.1 一維數組 118
7.5.2 二維數組 118
7.6 遍曆數組 119
7.7 字符串與數組的轉換 121
7.8 統計數組元素個數 123
7.9 查詢數組中指定元素 124
7.10 獲取數組中最後一個元素 125
7.11 嚮數組中添加元素 126
7.12 刪除數組中重復元素 127
7.13 綜閤運用數組函數——實現多文件
上傳 127
7.14 小結 129
7.15 練習與實踐 129
第8章 PHP與Web頁麵交互 131
視頻講解:58分鍾
8.1 錶單 132
8.1.1 創建錶單 132
8.1.2 錶單元素 133
8.2 在普通的Web頁中插入錶單 136
8.3 獲取錶單數據的兩種方法 138
8.3.1 使用POST()方法提交錶單 138
8.3.2 使用GET()方法提交錶單 139
8.4 PHP參數傳遞的常用方法 140
8.4.1 $_POST[]全局變量 140
8.4.2 $_GET[]全局變量 141
8.4.3 $_SESSION[]變量 141
8.5 在Web頁中嵌入PHP腳本 141
8.5.1 在HTML標記中添加PHP腳本 141
8.5.2 對錶單元素的value屬性進行賦值 142
8.6 在PHP中獲取錶單數據 142
8.6.1 獲取文本框、密碼域、隱藏域、按鈕、
文本域的值 142
8.6.2 獲取單選按鈕的值 143
8.6.3 獲取復選框的值 144
8.6.4 獲取下拉列錶框/菜單列錶框的值 145
8.6.5 獲取文件域的值 148
8.7 對URL傳遞的參數進行編/解碼 149
8.7.1 對URL傳遞的參數進行編碼 149
8.7.2 對URL傳遞的參數進行解碼 150
8.8 PHP與Web錶單的綜閤應用 150
8.9 小結 151
8.10 練習與實踐 152
第9章 PHP與JavaScript交互 153
視頻講解:1小時05分鍾
9.1 瞭解JavaScript 154
9.1.1 什麼是JavaScript 154
9.1.2 JavaScript的功能 154
9.2 JavaScript語言基礎 154
9.2.1 JavaScript數據類型 155
9.2.2 JavaScript變量 155
9.2.3 JavaScript注釋 156
9.3 自定義函數 157
9.4 JavaScript流程控製語句 158
9.4.1 條件語句 158
9.4.2 循環語句 162
9.4.3 跳轉語句 163
9.5 JavaScript事件 165
9.6 調用JavaScript腳本(JavaScript腳本
嵌入方式) 166
9.6.1 在HTML中嵌入JavaScript腳本 166
9.6.2 應用JavaScript事件調用自定義函數 167
9.6.3 在PHP動態網頁中引用JS文件 167
9.6.4 解決瀏覽器不支持JavaScript的問題 168
9.7 在PHP中調用JavaScript腳本 171
9.7.1 應用JavaScript腳本驗證錶單元素是否
為空 171
9.7.2 應用JavaScript腳本製作二級導航
菜單 172
9.7.3 應用JavaScript腳本控製文本域和
復選框 174
9.8 小結 176
9.9 練習與實踐 176
第10章 日期和時間 177
視頻講解:30分鍾
10.1 係統時區設置 178
10.1.1 時區劃分 178
10.1.2 時區設置 178
10.2 PHP日期和時間函數 178
10.2.1 獲得本地化時間戳 179
10.2.2 獲取當前時間戳 180
10.2.3 獲取當前日期和時間 180
10.2.4 獲取日期信息 181
10.2.5 檢驗日期的有效性 182
10.2.6 輸齣格式化的日期和時間 183
10.2.7 顯示本地化的日期和時間 184
10.2.8 將日期和時間解析為UNIX時間戳 187
10.3 日期和時間的應用 188
10.3.1 比較兩個時間的大小 188
10.3.2 實現倒計時功能 189
10.3.3 計算頁麵腳本的運行時間 190
10.4 小結 191
10.5 練習與實踐 191
第2篇 核 心 技 術
第11章 Cookie與Session 195
視頻講解:1小時08分鍾
11.1 Cookie管理 196
11.1.1 瞭解Cookie 196
11.1.2 創建Cookie 197
11.1.3 讀取Cookie 198
11.1.4 刪除Cookie 199
11.1.5 Cookie的生命周期 200
11.2 Session管理 200
11.2.1 瞭解Session 200
11.2.2 創建會話 201
11.2.3 Session設置時間 203
11.2.4 通過Session判斷用戶的操作權限 204
11.3 Session高級應用 207
11.3.1 Session臨時文件 207
11.3.2 Session緩存 208
11.3.3 Session數據庫存儲 209
11.4 小結 212
11.5 練習與實踐 212
第12章 圖形圖像處理技術 213
視頻講解:46分鍾
12.1 在PHP中加載GD庫 214
12.2 Jpgraph的安裝與配置 215
12.2.1 Jpgraph的安裝 215
12.2.2 Jpgraph的配置 215
12.3 圖形圖像的典型應用 216
12.3.1 創建一個簡單的圖像 216
12.3.2 使用GD2函數在照片上添加文字 216
12.3.3 使用圖像處理技術生成驗證碼 217
12.3.4 使用柱形圖統計圖書月銷售量 219
12.3.5 使用摺綫圖統計圖書月銷售額 220
12.3.6 使用3D餅形圖統計各類商品的年銷售
額比率 222
12.4 小結 223
12.5 練習與實踐 223
第13章 文件係統 225
視頻講解:49分鍾
13.1 文件處理 226
13.1.1 打開/關閉文件 226
13.1.2 讀寫文件 227
13.1.3 操作文件 232
13.2 目錄處理 233
13.2.1 打開/關閉目錄 233
13.2.2 瀏覽目錄 234
13.2.3 操作目錄 234
13.3 文件處理的高級應用 235
13.3.1 遠程文件的訪問 235
13.3.2 文件指針 235
13.3.3 鎖定文件 237
13.4 文件上傳 238
13.4.1 配置php.ini文件 238
13.4.2 預定義變量$_FILES 238
13.4.3 文件上傳函數 239
13.4.4 多文件上傳 240
13.5 小結 242
13.6 練習與實踐 242
第14章 麵嚮對象 243
視頻講解:27分鍾
14.1 麵嚮對象的基本概念 244
14.1.1 類 244
14.1.2 對象 244
14.1.3 麵嚮對象編程的三大特點 245
14.2 PHP與對象 245
14.2.1 類的定義 245
14.2.2 成員方法 246
14.2.3 類的實例化 246
14.2.4 成員變量 247
14.2.5 類常量 248
14.2.6 構造方法和析構方法 249
14.2.7 繼承和多態的實現 251
14.2.8 “$this ->”和“::”的使用 254
14.2.9 數據隱藏 255
14.2.10 靜態變量(方法) 257
14.3 PHP對象的高級應用 259
14.3.1 final關鍵字 259
14.3.2 抽象類 260
14.3.3 接口的使用 261
14.3.4 剋隆對象 263
14.3.5 對象比較 264
14.3.6 對象類型檢測 265
14.3.7 魔術方法(__) 266
14.4 麵嚮對象的應用——中文字符串的
截取類 270
14.5 小結 272
14.6 練習與實踐 272
第15章 PHP加密技術 273
視頻講解:24分鍾
15.1 PHP加密函數 274
15.1.1 使用crypt()函數進行加密 274
15.1.2 使用md5()函數進行加密 275
15.1.3 使用sha1()函數進行加密 277
15.2 PHP加密擴展庫 278
15.2.1 Mcrypt擴展庫 278
15.2.2 Mhash擴展庫 280
15.3 小結 282
15.4 練習與實踐 282
第16章 MySQL數據庫基礎 283
視頻講解:40分鍾
16.1 MySQL概述 284
16.2 啓動、連接、斷開和停止MySQL
服務器 285
16.2.1 啓動MySQL服務器 285
16.2.2 連接和斷開MySQL服務器 286
16.2.3 停止MySQL服務器 287
16.3 MySQL數據庫操作 288
16.3.1 創建數據庫CREATE DATABASE 288
16.3.2 查看數據庫SHOW DATABASES 289
16.3.3 選擇數據庫USE DATABASE 289
16.3.4 刪除數據庫DROP DATABASE 290
16.4 MySQL數據錶操作 290
16.4.1 創建數據錶CREATE TABLE 291
16.4.2 查看錶結構SHOW COLUMNS或
DESCRIBE 292
16.4.3 修改錶結構ALTER TABLE 293
16.4.4 重命名錶RENAME TABLE 294
16.4.5 刪除錶DROP TABLE 295
16.5 MySQL語句操作 295
16.5.1 插入記錄insert 295
16.5.2 查詢數據庫記錄select 296
16.5.3 修改記錄update 297
16.5.4 刪除記錄delete 298
16.6 MySQL數據庫備份和恢復 298
16.6.1 數據的備份 299
16.6.2 數據的恢復 300
16.7 小結 301
16.8 練習與實踐 301
第17章 phpMyAdmin圖形化管理工具 303
視頻講解:11分鍾
17.1 phpMyAdmin介紹 304
17.2 phpMyAdmin的使用 304
17.2.1 操作數據庫 304
17.2.2 操作數據錶 306
17.2.3 使用SQL語句操作數據錶 307
17.2.4 管理數據記錄 309
17.2.5 生成和執行mysql數據庫腳本 311
17.3 小結 313
17.4 練習與實踐 313
第18章 PHP操作MySQL數據庫 315
視頻講解:1小時15分鍾
18.1 PHP訪問MySQL數據庫的一般
步驟 316
18.2 PHP操作MySQL數據庫的方法 317
18.2.1 使用mysql_connect()函數連接MySQL
服務器 317
18.2.2 使用mysql_select_db()函數選擇數據庫
文件 319
18.2.3 使用mysql_query()函數執行SQL語句 320
18.2.4 使用mysql_fetch_array()函數從數組
結果集中獲取信息 321
18.2.5 使用mysql_fetch_object()函數從結果
集中獲取一行作為對象 323
18.2.6 使用mysql_fetch_row()函數逐行獲取
結果集中的每條記錄 324
18.2.7 使用mysql_num_rows()函數獲取查詢
結果集中的記錄數 326
18.3 PHP操作MySQL數據庫 327
18.3.1 使用insert語句動態添加公告信息 327
18.3.2 使用select語句查詢公告信息 330
18.3.3 使用update語句動態編輯公告信息 332
18.3.4 使用delete語句動態刪除公告信息 334
18.3.5 分頁顯示公告信息 335
18.3.6 將數據庫連接、操作、分頁和字符串
截取的方法封裝到類中 337
18.4 小結 341
18.5 練習與實踐 342
第19章 PDO數據庫抽象層 343
視頻講解:50分鍾
19.1 什麼是PDO 344
19.1.1 PDO概述 344
19.1.2 PDO特點 344
19.1.3 安裝PDO 344
19.2 PDO連接數據庫 345
19.2.1 PDO構造函數 345
19.2.2 DSN詳解 346
19.3 PDO中執行SQL語句 346
19.3.1 exec()方法 346
19.3.2 query()方法 346
19.3.3 預處理語句——prepare()和execute()
方法 347
19.4 PDO中獲取結果集 347
19.4.1 fetch()方法 347
19.4.2 fetchAll()方法 349
19.4.3 fetchColumn()方法 350
19.5 PDO中捕獲SQL語句中的錯誤 351
19.5.1 使用默認模式——PDO::ERRMODE_
SILENT 351
19.5.2 使用警告模式——PDO::ERRMODE_
WARNING 352
19.5.3 使用異常模式——PDO::ERRMODE_
EXCEPTION 353
19.6 PDO中錯誤處理 355
19.6.1 errorCode()方法 355
19.6.2 errorInfo()方法 356
19.7 PDO中事務處理 357
19.8 PDO中存儲過程 359
19.9 小結 360
19.10 練習與實踐 360
第20章 ThinkPHP框架 361
視頻講解:2小時31分鍾
20.1 ThinkPHP簡介 362
20.1.1 ThinkPHP框架的特點 362
20.1.2 環境要求 362
20.1.3 下載ThinkPHP框架 363
20.2 ThinkPHP架構 364
20.2.1 ThinkPHP的目錄結構 364
20.2.2 自動生成項目目錄 365
20.2.3 項目目錄部署方案 366
20.2.4 命名規範 367
20.2.5 項目構建流程 368
20.3 ThinkPHP的配置 370
20.3.1 配置格式 370
20.3.2 調試配置 371
20.4 ThinkPHP的控製器 371
20.4.1 控製器 371
20.4.2 跨模塊調用 373
20.5 ThinkPHP的模型 377
20.5.1 模型的命名 377
20.5.2 實例化模型 378
20.5.3 屬性訪問 381
20.5.4 連接數據庫 382
20.5.5 創建數據 385
20.5.6 連貫操作 386
20.5.7 CURD操作 387
20.6 ThinkPHP的視圖 393
20.6.1 模闆定義 394
20.6.2 模闆賦值 394
20.6.3 指定模闆文件 395
20.6.4 特殊字符串替換 395
20.7 內置ThinkTemplate模闆引擎 399
20.8 小結 404
20.9 練習與實踐 405
第3篇 高 級 應 用
第21章 Smarty模闆技術 409
視頻講解:57分鍾
21.1 Smarty簡介 410
21.1.1 什麼是Smarty 410
21.1.2 Smarty與MVC 410
21.1.3 Smarty特點 410
21.2 Smarty的安裝配置 411
21.2.1 Smarty下載和安裝 411
21.2.2 第一個Smarty程序 411
21.2.3 Smarty配置 413
21.3 Smarty模闆設計 414
21.3.1 Smarty模闆文件 414
21.3.2 注釋 415
21.3.3 變量 415
21.3.4 修飾變量 417
21.3.5 流程控製 419
21.4 Smarty程序設計 422
21.4.1 Smarty中的常用方法 422
21.4.2 Smarty的配置變量 424
21.5 Smarty模闆的應用 424
21.5.1 將Smarty的配置方法封裝到類中 424
21.5.2 Smarty+ADODB整閤應用 426
21.6 小結 428
21.7 練習與實踐 428
第22章 PHP與XML技術 429
視頻講解:23分鍾
22.1 XML的概述 430
22.2 XML語法 430
22.2.1 XML文檔結構 430
22.2.2 XML聲明 431
22.2.3 處理指令 431
22.2.4 注釋 431
22.2.5 XML元素 432
22.2.6 XML屬性 432
22.2.7 使用CDATA標記 432
22.2.8 XML命名空間 433
22.3 在PHP中創建XML文檔 434
22.4 SimpleXML 434
22.4.1 創建SimpleXML對象 435
22.4.2 遍曆所有子元素 436
22.4.3 遍曆所有屬性 436
22.4.4 訪問特定節點元素和屬性 437
22.4.5 修改XML數據 438
22.4.6 保存XML文檔 439
22.5 動態創建XML文檔 440
22.6 小結 441
22.7 練習與實踐 441
第23章 PHP與Ajax技術 443
視頻講解:43分鍾
23.1 Ajax概述 444
23.1.1 什麼是Ajax 444
23.1.2 Ajax的開發模式 444
23.1.3 Ajax的優點 445
23.2 Ajax使用的技術 445
23.2.1 JavaScript腳本語言 445
23.2.2 XMLHttpRequest 445
23.2.3 XML語言 448
23.2.4 DOM 448
23.2.5 CSS 448
23.3 Ajax開發需要注意的幾個問題 449
23.4 在PHP中應用Ajax技術的典型
應用 450
23.4.1 在PHP中應用Ajax技術檢測用戶名 450
23.4.2 在PHP中應用Ajax技術實現博客文章
類彆添加 452
23.5 小結 456
23.6 練習與實踐 456
第4篇 項 目 實 戰
第24章 應用Smarty模闆開發電子商務
網站 459
視頻講解:2小時19分鍾
24.1 開發背景 460
24.2 需求分析 460
24.3 係統分析 460
24.3.1 係統目標 460
24.3.2 係統功能結構 461
24.3.3 開發環境 462
24.3.4 文件夾組織結構 462
24.4 數據庫與數據錶的設計 462
24.4.1 數據庫分析 463
24.4.2 創建數據庫和數據錶 464
24.5 公共文件設計 466
24.5.1 數據庫連接、管理和分頁類文件 466
24.5.2 Smarty模闆配置類文件 469
24.5.3 執行類的實例化文件 469
24.6 前颱首頁設計 470
24.6.1 前颱首頁技術分析 471
24.6.2 前颱首頁實現過程 471
24.7 登錄模塊設計 473
24.7.1 登錄模塊概述 473
24.7.2 登錄模塊技術分析 473
24.7.3 用戶注冊 475
24.7.4 用戶登錄 477
24.7.5 找迴密碼 479
24.8 會員信息模塊設計 484
24.8.1 會員信息模塊概述 484
24.8.2 會員信息模塊技術分析 484
24.8.3 會員中心 485
24.8.4 安全退齣 489
24.9 商品展示模塊 489
24.9.1 商品展示模塊概述 489
24.9.2 商品展示模塊技術分析 490
24.9.3 商品展示模塊的實現過程 491
24.10 購物車模塊設計 494
24.10.1 購物車模塊概述 494
24.10.2 購物車模塊技術分析 494
24.10.3 購物車展示 496
24.10.4 更改商品數量 498
24.10.5 刪除商品 499
24.10.6 保存購物車 501
24.11 收銀颱模塊設計 503
24.11.1 收銀颱模塊概述 503
24.11.2 收銀颱模塊技術分析 503
24.11.3 顯示訂單 504
24.11.4 填寫訂單 504
24.11.5 處理訂單 505
24.12 後颱首頁設計 506
24.12.1 後颱首頁概述 506
24.12.2 後颱首頁技術分析 507
24.12.3 後颱首頁實現過程 509
24.13 開發常見問題與解決 510
24.13.1 解決Ajax的亂碼問題 511
24.13.2 使用JS腳本獲取、輸齣標簽內容 511
24.13.3 禁用頁麵緩存 511
24.13.4 在新窗口中使用session 511
24.13.5 判斷上傳文件格式 512
24.13.6 設置服務器的時間 512
24.14 小結 513
第25章 應用ThinkPHP框架開發明日導
航網 515
視頻講解:41分鍾
25.1 項目設計思路 516
25.1.1 功能闡述 516
25.1.2 功能結構 516
25.1.3 係統預覽 516
25.2 數據庫與數據錶設計 518
25.2.1 數據庫設計 518
25.2.2 數據錶設計 518
25.2.3 連接數據庫 519
25.3 ThinkPHP架設項目結構 520
25.3.1 下載ThinkPHP框架 520
25.3.2 自動生成項目目錄 520
25.4 明日導航前颱頁麵設計 521
25.4.1 頁麵設計概述 521
25.4.2 控製器的創建 522
25.4.3 視圖中應用到的模闆標簽 524
25.4.4 在視圖中創建模闆文件 527
25.5 明日導航後颱管理設計 528
25.5.1 後颱管理概述 528
25.5.2 通過係統配置文件存儲後颱登錄數據 528
25.5.3 後颱管理架構解析 529
25.5.4 ThinkPHP框架中的分頁技術 530
25.5.5 後颱管理視圖中應用的模闆標簽 531
25.5.6 後颱登錄 533
25.5.7 後颱管理主頁 534
25.5.8 高級類彆管理 536
25.5.9 判斷訪問用戶的權限 539
25.5.10 操作提示頁麵 539
25.6 小結 540
· · · · · · (
收起)