《PHP開發實戰》,是清華大學出版社出版的圖書,作者是軟體開發技術聯盟。本書適合有志於從事軟體開發的初學者、高等院校計算機相關專業的學生,也可作為軟體開發人員的參考手冊,或者高等院校的教學參考書。
基本介紹
- 作者:軟體開發技術聯盟 編著
- ISBN:9787302318965
- 定價:96.00元
- 出版社:清華大學出版社
- 裝幀:平裝
內容介紹
作品目錄
第1篇 新 手 入 門
第1章 初識PHP 2
視頻講解:7分鐘
1.1 PHP概述 3
1.1.1 PHP是什麼 3
1.1.2 PHP 5的新特性 3
1.1.3 PHP的語言優勢 3
1.1.4 PHP語言的發展 4
1.2 PHP與其他語言的比較 5
1.3 PHP語言相關術語 5
1.4 資深程式設計師談如何學習PHP 7
1.5 常用代碼編輯工具 8
1.6 學習資源 9
1.6.1 PHP參考手冊 10
1.6.2 PHP學習討論 10
1.7 成功案例 10
1.8 本章小結 11
第2章 PHP環境搭建 12
視頻講解:75分鐘
2.1 搭建PHP開發環境的準備工作 13
2.1.1 在Windows下搭建PHP開發環境的
準備工作 13
2.1.2 在Linux下搭建PHP開發環境的準備工作 13
2.2 Apache伺服器的安裝和配置 13
2.2.1 在Windows下安裝Apache伺服器 13
2.2.2 在Linux下安裝Apache伺服器 16
2.3 PHP的安裝和配置 17
2.3.1 在Windows下安裝PHP 17
2.3.2 在Linux下安裝PHP 17
2.4 MySQL伺服器的安裝和配置 18
2.4.1 在Windows下安裝MySQL伺服器 18
2.4.2 在Linux下安裝MySQL伺服器 21
2.5 初學者--套用組合包快速搭建
PHP環境 22
2.6 第一個PHP程式 24
2.6.1 使用Macromedia Dreamweaver 8編寫
源程式 24
2.6.2 發布和運行PHP程式 25
2.7 環境安裝常見問題 25
2.7.1 Apache安裝常見問題 25
2.7.2 PHP安裝常見問題 26
2.7.3 MySQL安裝常見問題 27
2.8 實戰 27
2.8.1 輸出系統的當前時間 27
2.8.2 輸出"明日科技歡迎你" 29
2.8.3 輸出一張漂亮的圖片 29
2.8.4 更改Apache伺服器的連線埠號為82 30
2.8.5 Apache伺服器的連線埠號修改後運行
第一個PHP程式 30
2.9 本章小結 31
2.10 學習成果檢驗 31
第3章 PHP語言基礎 32
視頻講解:125分鐘
3.1 學習語言基礎的重要性 33
3.2 PHP語法基礎 33
3.2.1 PHP標識符 33
3.2.2 PHP的注釋 34
3.3 PHP的數據類型 34
3.3.1 整型 35
3.3.2 布爾型 35
3.3.3 浮點型 36
3.3.4 字元串型 36
3.3.5 null型 38
3.3.6 數據類型的轉換 39
3.4 PHP常量 40
3.4.1 聲明和使用常量 40
3.4.2 預定義常量 41
3.5 PHP變數 42
3.5.1 變數聲明及使用 42
3.5.2 變數作用域 44
3.5.3 可變變數 45
3.5.4 預定義變數 46
3.5.5 變數的生存周期 47
3.6 PHP運算符 47
3.6.1 字元串運算符 47
3.6.2 算術運算符 47
3.6.3 賦值運算符 48
3.6.4 遞增或遞減運算符 49
3.6.5 位運算符 50
3.6.6 邏輯運算符 50
3.6.7 比較運算符 51
3.6.8 條件運算符 52
3.6.9 運算符的使用規則 53
3.7 PHP的表達式 53
3.8 實戰 54
3.8.1 判斷指定的年份是否為閏年 54
3.8.2 檢測變數是否為整型 55
3.8.3 輸出姚明的個人信息 55
3.8.4 計算長方形的面積 56
3.8.5 比較某一天的產品銷量 56
3.9 本章小結 57
3.10 學習成果檢驗 57
第4章 流程控制語句 58
視頻講解:80分鐘
4.1 學前導讀 59
4.1.1 什麼是算法 59
4.1.2 算法的描述方法 59
4.1.3 程式的3種控制結構 60
4.2 條件控制語句 61
4.2.1 if條件語句 62
4.2.2 switch...case分支控制語句 64
4.3 循環控制語句 65
4.3.1 while循環語句 65
4.3.2 do...while循環語句 66
4.3.3 for循環語句 67
4.3.4 foreach循環語句 68
4.4 跳轉控制語句 69
4.4.1 套用break語句跳出循環 69
4.4.2 套用continue語句跳出循環 70
4.5 實戰 71
4.5.1 過濾留言信息中的敏感詞 71
4.5.2 圖書信息顯示 73
4.5.3 套用switch語句設計網站主頁 74
4.5.4 套用continue語句計算100以內奇數的和 76
4.5.5 套用for語句製作一個乘法口訣表 76
4.6 本章小結 77
4.7 學習成果檢驗 77
第5章 函式 78
視頻講解:75分鐘
5.1 自定義函式 79
5.1.1 函式的命名規則 79
5.1.2 自定義函式格式 79
5.1.3 調用自定義函式 80
5.1.4 函式的參數 80
5.1.5 函式返回值 81
5.1.6 嵌套調用 82
5.1.7 遞歸調用 82
5.2 內建函式 83
5.3 輸出語句 83
5.3.1 套用print語句輸出字元 83
5.3.2 套用echo語句輸出字元 84
5.3.3 套用printf語句格式化輸出字元 85
5.3.4 套用sprintf語句格式化輸出字元 86
5.4 引用檔案 87
5.4.1 套用include語句引用檔案 87
5.4.2 套用require語句引用檔案 88
5.4.3 套用include_once語句引用檔案 88
5.4.4 套用require_once語句引用檔案 89
5.4.5 include語句和require語句的使用區別 90
5.4.6 include_once語句和require_once語句的
使用區別 90
5.5 實戰 90
5.5.1 通過自定義函式防止新聞主題信息出現
中文亂碼 90
5.5.2 套用include語句構建線上音樂網站主頁 92
5.5.3 對關鍵字進行高亮顯示 93
5.5.4 獲取上傳檔案的後綴名 93
5.5.5 自定義一個為數字取絕對值的函式 94
5.6 本章小結 94
5.7 學習成果檢驗 95
第6章 字元串 96
視頻講解:76分鐘
6.1 字元串簡介 97
6.2 單引號與雙引號 97
6.3 定界符 98
6.4 連線字元串 99
6.5 轉義、還原字元串 100
6.5.1 手動轉義、還原字元串 100
6.5.2 自動轉義、還原字元串 101
6.6 獲取字元串長度 102
6.7 截取字元串 103
6.8 比較字元串 104
6.8.1 按位元組比較 105
6.8.2 按自然排序法比較 105
6.8.3 指定從源字元串的位置比較 106
6.9 檢索字元串 106
6.9.1 套用strstr()函式檢索指定的關鍵字 106
6.9.2 套用substr_count()函式檢索子串
出現的次數 107
6.10 替換子字元串 109
6.11 去除字元串中空白字元和特殊字元 112
6.11.1 去除字元串左邊空白字元和特殊字元 113
6.11.2 去除字元串右邊空白字元和特殊字元 113
6.11.3 去除字元串兩邊空白字元和特殊字元 113
6.12 格式化字元串 114
6.13 分割字元串 115
6.14 字元串與HTML相互轉換 116
6.15 實戰 117
6.15.1 超長文本的分頁顯示 117
6.15.2 控制頁面中輸出字元串的長度 119
6.15.3 套用explode()函式和implode()函式
分割和合成字元串 120
6.15.4 套用substr()函式截取超長字元串 121
6.15.5 統一英文註冊用戶首字母大寫 122
6.16 本章小結 122
6.17 學習成果檢驗 123
第7章 正則表達式 124
視頻講解:82分鐘
7.1 正則表達式是什麼 125
7.2 正則表達式常用術語 125
7.3 正則表達式語法規則 125
7.3.1 行定位符(^和$) 125
7.3.2 字元類([]) 126
7.3.3 選擇字元(|) 126
7.3.4 連字元(-) 126
7.3.5 排除字元(^) 127
7.3.6 限定符(? * + {n,m}) 127
7.3.7 點字元(.) 127
7.3.8 轉義字元(\) 128
7.3.9 反斜槓(\) 128
7.3.10 括弧字元(()) 129
7.3.11 反向引用 129
7.4 POSIX擴展正則表達式函式 130
7.4.1 查找字元串 130
7.4.2 替換字元串 130
7.4.3 分割字元串 130
7.5 PCRE兼容正則表達式函式 131
7.5.1 查找字元串 131
7.5.2 替換字元串 132
7.6 實戰 133
7.6.1 通過正則表達式無刷新驗證用戶註冊
信息是否合理 133
7.6.2 驗證E-mail地址格式是否正確 135
7.6.3 驗證文本框輸入的是否為整數 135
7.6.4 驗證IP位址是否有效 136
7.6.5 驗證註冊信息是否符合要求 137
7.7 本章小結 138
7.8 學習成果檢驗 139
第8章 PHP數組 140
視頻講解:90分鐘
8.1 數組是什麼 141
8.2 聲明數組 141
8.2.1 數組命名規則 141
8.2.2 通過PHP函式創建數組 142
8.2.3 通過數組標識符"[]"創建數組 143
8.3 數組的類型 143
8.3.1 數字索引數組 143
8.3.2 關聯數組 144
8.4 輸出數組 144
8.5 數組的構造 145
8.5.1 創建一維數組 145
8.5.2 創建二維數組 146
8.6 遍歷數組 146
8.6.1 foreach結構遍歷數組 146
8.6.2 each()函式遍歷數組 147
8.6.3 list()函式遍歷數組 147
8.6.4 for語句遍歷數組 148
8.7 合併數組 149
8.8 字元串與數組的轉換 150
8.8.1 套用explode()函式將字元串轉換成數組 150
8.8.2 套用implode()函式將數組轉換成一個
新字元串 150
8.9 統計數組元素個數 150
8.10 數組排序 151
8.10.1 數字數組排序 151
8.10.2 關聯數組排序 153
8.11 實戰 153
8.11.1 向投票系統添加投票選項 153
8.11.2 用foreach結構遍歷二維數組 154
8.11.3 生成線上考試題 155
8.11.4 判斷元素值是否在數組中 155
8.11.5 向數組中添加元素 156
8.12 本章小結 157
8.13 學習成果檢驗 157
第9章 日期和時間 158
視頻講解:93分鐘
9.1 系統時區設定 159
9.1.1 時區的劃分 159
9.1.2 PHP中的時區設定 159
9.2 UNIX時間戳 160
9.2.1 什麼是時間戳 160
9.2.2 UNIX時間戳 160
9.2.3 獲取指定日期的時間戳 160
9.2.4 獲取當前時間戳 161
9.2.5 將英文文本的日期時間描述解析為UNIX
時間戳 162
9.3 PHP日期和時間的處理 162
9.3.1 格式化日期和時間 163
9.3.2 獲取日期和時間信息 164
9.3.3 獲取本地化的日期和時間 165
9.3.4 檢驗日期和時間的有效性 167
9.4 實戰 168
9.4.1 實現倒計時的功能 168
9.4.2 實現生日提示功能 168
9.4.3 計算線上考試用時和剩餘時間 170
9.4.4 網頁鬧鐘 173
9.4.5 輸出中文格式的日期和時間 173
9.5 本章小結 174
9.6 學習成果檢驗 174
第10章 綜合實例(一)--註冊登錄 175
視頻講解:46分鐘
10.1 註冊及登錄驗證概述 176
10.1.1 用戶註冊流程 176
10.1.2 用戶登錄流程 176
10.1.3 找回密碼流程 176
10.1.4 程式預覽 176
10.2 熱點關鍵技術 177
10.2.1 防SQL注入技術 177
10.2.2 Ajax無刷新驗證技術 177
10.2.3 驗證碼技術 178
10.2.4 E-mail激活技術 181
10.2.5 套用鍵盤回響事件驗證信息是否合法 181
10.2.6 PHP中操作Cookie技術 183
10.2.7 在JavaScript中操作Cookie技術 183
10.2.8 用戶自動登錄技術 184
10.3 資料庫設計 184
10.3.1 資料庫設計概述 184
10.3.2 封裝資料庫連線-操作類 184
10.4 用戶註冊 187
10.4.1 用戶註冊功能概述 187
10.4.2 註冊頁面設計 187
10.4.3 檢測用戶名是否被占用 191
10.4.4 註冊信息處理 191
10.4.5 註冊用戶激活 192
10.4.6 免激活用戶註冊 193
10.5 用戶登錄 194
10.5.1 用戶登錄功能概述 194
10.5.2 登錄頁面設計 194
10.5.3 登錄處理頁 197
10.5.4 生成及刷新驗證碼 198
10.6 找回密碼 198
10.6.1 找回密碼功能概述 198
10.6.2 找回密碼功能實現過程 198
第2篇 數 據 庫 篇
第11章 MySQL資料庫基本操作 202
視頻講解:70分鐘
11.1 MySQL簡介 203
11.1.1 MySQL是什麼 203
11.1.2 MySQL特點 203
11.1.3 MySQL 5支持的特性 204
11.2 啟動、連線、斷開和停止MySQL
伺服器 204
11.2.1 啟動MySQL伺服器 204
11.2.2 連線和斷開MySQL伺服器 205
11.2.3 停止MySQL伺服器 205
11.3 使用MySQL命令行運算元據庫 206
11.3.1 創建資料庫 206
11.3.2 查看資料庫 207
11.3.3 選擇資料庫 207
11.3.4 刪除資料庫 207
11.4 使用MySQL命令行運算元據表 207
11.4.1 創建數據表 207
11.4.2 查看錶結構 208
11.4.3 修改表結構 209
11.4.4 重命名表 210
11.4.5 刪除表 210
11.5 MySQL語句操作 210
11.5.1 插入記錄 210
11.5.2 瀏覽資料庫記錄 211
11.5.3 修改記錄 211
11.5.4 刪除記錄 212
11.6 實戰 212
11.6.1 管理MySQL資料庫及數據表 212
11.6.2 創建db_book圖書資料庫以及圖書
信息表tb_mrbook 213
11.6.3 向tb_mrbook表中添加、修改和刪除
數據 214
11.6.4 用mysqldump命令導出資料庫 214
11.6.5 用mysql命令將資料庫檔案導入資料庫 215
11.7 本章小結 215
11.8 學習成果檢驗 215
第12章 phpMyAdmin圖形化管理工具 216
視頻講解:57分鐘
12.1 phpMyAdmin簡介 217
12.2 phpMyAdmin的安裝和配置 217
12.2.1 Windows系統下phpMyAdmin的
安裝配置 217
12.2.2 Linux系統下phpMyAdmin的安裝配置 218
12.3 phpMyAdmin的使用 219
12.3.1 管理資料庫 219
12.3.2 管理數據表 220
12.3.3 管理數據記錄 221
12.3.4 導入/導出數據 224
12.4 實戰 225
12.4.1 通過phpMyAdmin圖形化管理工具修改
資料庫密碼 225
12.4.2 使用phpMyAdmin設定編碼格式 225
12.4.3 通過phpMyAdmin添加伺服器新用戶 226
12.4.4 在phpMyAdmin中刪除MySQL伺服器
登錄密碼 226
12.4.5 手動備份、恢復MySQL資料庫 227
12.5 本章小結 228
12.6 學習成果檢驗 228
第13章 使用MySQL函式運算元據庫 229
視頻講解:182分鐘
13.1 PHP訪問MySQL資料庫的一般
步驟 230
13.2 使用MySQL函式館 230
13.2.1 連線MySQL伺服器 231
13.2.2 選擇資料庫 231
13.2.3 執行SQL語句 232
13.2.4 套用mysql_fetch_array()函式獲取結果集 233
13.2.5 套用mysql_fetch_object()函式獲取結果集 235
13.2.6 套用mysql_fetch_row()函式獲取結果集 236
13.2.7 套用mysql_num_rows()函式獲取記錄數 237
13.2.8 關閉連線 238
13.3 PHP操作MySQL資料庫 239
13.3.1 套用insert命令動態添加公告信息 239
13.3.2 套用select命令查詢公告信息 241
13.3.3 解決截取公告主題亂碼問題 243
13.3.4 分頁顯示公告信息 244
13.3.5 套用update命令動態編輯公告信息 246
13.3.6 套用delete命令動態刪除公告信息 248
13.4 實戰 249
13.4.1 輸入頁碼跳轉到指定頁 249
13.4.2 圖片的分欄分頁顯示 251
13.4.3 留言板 253
13.4.4 高級查詢 256
13.4.5 分組統計 258
13.4.6 使用下拉選單跳轉頁面 260
13.5 本章小結 262
13.6 學習成果檢驗 263
第14章 ADODB類庫 264
視頻講解:96分鐘
14.1 ADODB類庫是什麼 265
14.2 ADODB支持的資料庫 265
14.3 ADODB下載與安裝 266
14.4 ADODB類庫 267
14.4.1 連線資料庫函式 267
14.4.2 運算元據庫函式 268
14.4.3 控制結果集存取方式函式 272
14.4.4 操作結果集函式 273
14.4.5 處理事務函式 275
14.4.6 生成HTML表格函式 275
14.4.7 生成下拉列表框函式 276
14.4.8 實現分頁功能函式 277
14.4.9 錯誤處理函式 278
14.5 實戰 278
14.5.1 實現分頁 278
14.5.2 處理事務 279
14.5.3 快取函式+ADODB動態生成靜態頁 280
14.5.4 添加商品信息 284
14.5.5 刪除圖書信息 287
14.6 本章小結 289
14.7 學習成果檢驗 289
第15章 PDO資料庫抽象層 290
視頻講解:60分鐘
15.1 什麼是PDO 291
15.1.1 PDO概述 291
15.1.2 PDO特點 291
15.1.3 安裝PDO 291
15.2 PDO連線資料庫 292
15.2.1 PDO構造函式 292
15.2.2 DSN詳解 292
15.3 PDO中執行SQL語句 292
15.3.1 exec()方法 293
15.3.2 query()方法 293
15.3.3 預處理語句--prepare()和execute() 294
15.4 PDO中獲取結果集 295
15.4.1 fetch()方法 295
15.4.2 fetchAll()方法 296
15.4.3 fetchColumn()方法 297
15.5 PDO中捕獲SQL語句中的錯誤 299
15.5.1 使用默認模式--PDO::
ERRMODE_SILENT 299
15.5.2 使用警告模式--PDO::
ERRMODE_WARNING 300
15.5.3 使用異常模式--PDO::
ERRMODE_EXCEPTION 301
15.6 PDO中錯誤處理 302
15.6.1 errorCode()方法 302
15.6.2 errorInfo()方法 303
15.7 PDO中事務處理 304
15.8 PDO中存儲過程 305
15.9 實戰 306
15.9.1 明日書店會員註冊 306
15.9.2 添加留言信息 308
15.9.3 查詢圖書信息 309
15.9.4 刪除會員信息 310
15.9.5 修改商品信息 312
15.10 本章小結 316
15.11 學習成果檢驗 316
第16章 綜合實例(二)--線上論壇 317
視頻講解:25分鐘
16.1 線上論壇概述 318
16.1.1 模組概述 318
16.1.2 功能結構 318
16.1.3 許可權分配 318
16.1.4 程式預覽 319
16.2 資料庫設計 320
16.2.1 資料庫設計 320
16.2.2 數據表設計 320
16.2.3 連線資料庫 321
16.3 用戶註冊 321
16.3.1 用戶註冊概述 321
16.3.2 檢測用戶名是否被占用 321
16.3.3 用戶註冊的實現 322
16.4 線上論壇前台 323
16.4.1 帖子瀏覽功能概述 323
16.4.2 分頁顯示回覆信息 323
16.4.3 帖子的發布 326
16.4.4 註銷用戶 328
16.5 後台管理 328
16.5.1 線上論壇後台管理概述 328
16.5.2 通過switch和include語句設計後台
首頁框架 328
16.5.3 欄目管理 329
16.6 技術提煉 332
16.6.1 分頁技術 332
16.6.2 網頁訪問許可權設定 334
16.6.3 頁面刷新技術 334
第3篇 核 心 技 術
第17章 會話管理 336
視頻講解:117分鐘
17.1 Cookie管理 337
17.1.1 了解Cookie 337
17.1.2 創建Cookie 338
17.1.3 讀取Cookie 339
17.1.4 刪除Cookie 340
17.1.5 Cookie套用的注意事項 340
17.1.6 Cookie的綜合套用--自動登錄 341
17.2 Session管理 343
17.2.1 了解Session 343
17.2.2 啟動Session 343
17.2.3 套用Session 344
17.2.4 刪除Session 345
17.2.5 Session的綜合套用--通過Session
控制頁面訪問許可權 345
17.3 Session與Cookie的比較 347
17.4 實戰 347
17.4.1 通過Cookie實現單點登錄 347
17.4.2 Session購物車 349
17.4.3 防止頁面刷新 353
17.4.4 通過Session變數禁止刷新頁面對
計數器的影響 354
17.4.5 套用Session變數控制用戶登錄時間 355
17.5 本章小結 357
17.6 學習成果檢驗 357
第18章 圖形圖像 358
視頻講解:106分鐘
18.1 了解GD2函式館 359
18.2 參數設定 359
18.3 Jpgraph類庫 359
18.3.1 Jpgraph類庫簡介 360
18.3.2 Jpgraph的安裝 360
18.3.3 Jpgraph的配置 360
18.4 常用圖像處理 361
18.4.1 創建畫布 361
18.4.2 顏色處理 361
18.4.3 輸出圖像 362
18.4.4 繪製基本圖形 362
18.4.5 填充幾何圖形 363
18.4.6 輸出文字 364
18.5 實戰 365
18.5.1 創建一個簡單的圖像 365
18.5.2 套用GD2函式在照片上添加文字 366
18.5.3 套用圖像處理技術生成驗證碼 366
18.5.4 Jpgraph創建柱狀圖展示年度收支情況 368
18.5.5 Jpgraph創建折線圖統計圖書銷售走勢 369
18.5.6 Jpgraph創建3D餅形圖展示部門
業績比較 371
18.6 本章小結 371
18.7 學習成果檢驗 372
第19章 檔案系統 373
視頻講解:74分鐘
19.1 檔案處理 374
19.1.1 打開檔案 374
19.1.2 讀取檔案 375
19.1.3 寫入檔案 377
19.1.4 操作檔案 378
19.1.5 關閉檔案 379
19.2 檔案上傳 379
19.2.1 配置php.ini檔案 379
19.2.2 預定義變數$_FILES 379
19.2.3 檔案上傳函式 380
19.3 檔案處理的高級套用 381
19.3.1 遠程檔案的訪問 381
19.3.2 檔案指針 382
19.3.3 鎖定檔案 383
19.4 目錄處理 384
19.4.1 打開目錄 384
19.4.2 瀏覽目錄 384
19.4.3 操作目錄 384
19.4.4 關閉目錄 385
19.5 實戰 385
19.5.1 多圖片上傳 385
19.5.2 通過文本檔案統計頁面訪問量 387
19.5.3 規範化的檔案上傳 388
19.5.4 文本檔案的分頁輸出 389
19.5.5 從文本檔案中讀取註冊服務條款 390
19.6 本章小結 391
19.7 學習成果檢驗 391
第20章 面向對象 392
視頻講解:160分鐘
20.1 面向對象的基本概念 393
20.1.1 類 393
20.1.2 對象 393
20.1.3 面向對象編程的三大特點 393
20.2 類與對象 393
20.2.1 定義類 394
20.2.2 實例化類 394
20.2.3 使用對象 395
20.2.4 成員變數 396
20.2.5 成員函式 396
20.3 類的許可權修飾符 397
20.3.1 public(公有成員) 397
20.3.2 private(私有成員) 398
20.3.3 protected(保護成員) 398
20.4 構造函式 399
20.4.1 創建構造函式 399
20.4.2 調用父類構造函式 400
20.5 析構函式 400
20.6 使用$this變數訪問方法和屬性 401
20.7 static關鍵字 402
20.8 final關鍵字 403
20.9 抽象類 403
20.10 接口的使用 405
20.11 實戰 406
20.11.1 面向對象的用戶登錄身份驗證 406
20.11.2 面向對象的數據分頁顯示 407
20.11.3 封裝一個資料庫操作類 409
20.11.4 用面向對象生成圖像驗證碼 410
20.11.5 封裝一個顯示頁碼的分頁類 411
20.11.6 數據統計類中定義求數字平均值的方法 413
20.11.7 封裝特殊字元轉義類 414
20.12 本章小結 414
20.13 學習成果檢驗 414
第21章 PHP加密技術 415
視頻講解:8分鐘
21.1 加密技術簡介 416
21.1.1 MD5算法 416
21.1.2 SHA1算法 417
21.1.3 DES算法 417
21.1.4 MIME/BASE64的算法 417
21.2 PHP內置加密函式 417
21.2.1 使用crypt()函式進行加密 418
21.2.2 使用md5()函式進行加密 419
21.2.3 使用sha1()函式進行加密 419
21.2.4 使用base64_encode()函式進行編碼 420
21.2.5 使用base64_decode()函式進行解碼 420
21.3 PHP加密擴展庫 420
21.3.1 Mcrypt擴展庫 420
21.3.2 Mhash擴展庫 422
21.4 實戰 423
21.4.1 用戶註冊密碼的MD5加密 423
21.4.2 用戶註冊密碼的crypt加密 424
21.4.3 用自定義函式對用戶密碼進行加密 425
21.4.4 隱藏PHP檔案擴展名 427
21.4.5 禁止用戶輸入敏感字元 428
21.5 本章小結 430
21.6 學習成果檢驗 430
第22章 程式調試與異常處理 431
視頻講解:70分鐘
22.1 程式基本調試流程 432
22.2 PHP中的錯誤類型 432
22.2.1 語法錯誤 432
22.2.2 語義錯誤 434
22.2.3 邏輯錯誤 434
22.2.4 注釋錯誤 435
22.2.5 運行錯誤 435
22.3 PHP錯誤的調試 435
22.3.1 PHP的錯誤報告 436
22.3.2 啟動錯誤報告 436
22.3.3 使用print語句調試程式 436
22.3.4 套用前綴字元@禁止PHP腳本錯誤
提示 437
22.3.5 使用錯誤處理器記錄日誌 437
22.4 SQL錯誤的調試 438
22.4.1 PHP與MySQL連線錯誤 438
22.4.2 SQL語句錯誤 439
22.5 實戰 441
22.5.1 分析、解決PHP與MySQL連線錯誤 441
22.5.2 解決資料庫亂碼問題 442
22.5.3 封裝異常處理類 444
22.5.4 使用錯誤處理器記錄日誌 445
22.5.5 通過phpMyAdmin調試SQL語句中
的錯誤 445
22.6 本章小結 446
22.7 學習成果檢驗 446
第23章 綜合實例(三)--投票系統 447
視頻講解:45分鐘
23.1 投票系統概述 448
23.1.1 模組概述 448
23.1.2 功能結構 448
23.1.3 程式預覽 448
23.2 資料庫設計 449
23.2.1 資料庫設計 449
23.2.2 數據表設計 450
23.2.3 連線資料庫 450
23.3 投票 450
23.3.1 用戶註冊 450
23.3.2 用戶登錄 452
23.3.3 投票主題瀏覽 453
23.3.4 投票內容提交 453
23.4 投票管理 458
23.4.1 投票管理概述 458
23.4.2 動態生成投票主題及選項 458
23.4.3 刪除投票主題與投票內容 461
23.4.4 刷新投票結果 462
23.5 技術提煉 463
23.5.1 通過3D餅形圖分析投票結果 463
23.5.2 通過柱形圖分析投票結果 464
23.5.3 Cookie投票限制 466
23.5.4 通過IP限制重複投票 467
第4篇 Web前端開發
第24章 PHP與Web頁面互動 470
視頻講解:124分鐘
24.1 表單 471
24.1.1 創建表單 471
24.1.2 認識表單元素 471
24.2 在Web頁中創建表單 474
24.3 在Web頁中嵌入PHP腳本 475
24.3.1 在HTML標記中嵌入PHP腳本 475
24.3.2 為表單元素賦值 476
24.4 提交表單數據 476
24.4.1 POST方法提交表單數據 476
24.4.2 GET方法提交表單數據 477
24.4.3 POST方法與GET方法的使用區別 478
24.5 PHP全局變數 478
24.5.1 $_POST[]全局變數 478
24.5.2 $_GET[]全局變數 480
24.5.3 $_SESSION[]全局變數 480
24.6 對URL傳遞的參數進行編/解碼 480
24.6.1 對URL傳遞的參數進行編碼 480
24.6.2 對URL編碼的字元串進行解碼 481
24.7 實戰 481
24.7.1 發布和查看公告信息 482
24.7.2 圖書借閱 483
24.7.3 設計一個用戶註冊表單並獲取用戶
註冊信息 484
24.7.4 限制多行文本域輸入的字元個數 485
24.7.5 獲取用戶的個人信息 486
24.7.6 用戶登錄 489
24.7.7 設定文本框的唯讀屬性 490
24.7.8 對超連結傳遞的數據進行編碼 491
24.8 本章小結 491
24.9 學習成果檢驗 491
第25章 PHP與JavaScript互動 492
視頻講解:81分鐘
25.1 了解JavaScript 493
25.1.1 JavaScript是什麼 493
25.1.2 JavaScript能做什麼 493
25.2 JavaScript語言基礎 493
25.2.1 JavaScript數據類型 493
25.2.2 JavaScript變數 494
25.2.3 JavaScript注釋 495
25.3 自定義函式 496
25.4 JavaScript腳本嵌入方式 496
25.4.1 在HTML中嵌入JavaScript腳本 496
25.4.2 套用JavaScript事件調用自定義函式 497
25.4.3 在PHP動態網頁中引用JS檔案 498
25.4.4 解決瀏覽器不支持JavaScript的問題 499
25.5 實戰 501
25.5.1 套用JavaScript腳本製作樹狀導航選單 501
25.5.2 PHP與JavaScript腳本的互動套用 503
25.5.3 用JavaScript腳本實現年月日的聯動 506
25.5.4 用JavaScript腳本實現幾秒後跳轉頁面 507
25.5.5 確認框confirm()的套用 509
25.6 本章小結 511
25.7 學習成果檢驗 511
第26章 XML技術 512
視頻講解:79分鐘
26.1 XML概述 513
26.2 XML語法 513
26.2.1 XML文檔結構 513
26.2.2 XML聲明 513
26.2.3 XML處理指令 514
26.2.4 XML注釋 514
26.2.5 XML元素 514
26.2.6 XML屬性 516
26.3 創建XML文檔 516
26.4 SimpleXML 517
26.4.1 創建SimpleXML對象 517
26.4.2 遍歷所有子元素 518
26.4.3 遍歷所有屬性 519
26.4.4 訪問特定節點元素和屬性 520
26.4.5 修改XML數據 520
26.4.6 保存XML文檔 521
26.5 實戰 522
26.5.1 動態創建XML文檔 522
26.5.2 動態讀取XML文檔 524
26.5.3 通過XPath查詢XML中的數據 525
26.5.4 動態添加XML中的數據 527
26.5.5 動態刪除XML中的數據 528
26.6 本章小結 531
26.7 學習成果檢驗 531
第27章 Ajax技術 532
視頻講解:77分鐘
27.1 Ajax概述 533
27.1.1 什麼是Ajax 533
27.1.2 Ajax的開發模式 533
27.1.3 Ajax的優點 533
27.2 Ajax技術的組成 534
27.2.1 JavaScript腳本語言 534
27.2.2 XMLHttpRequest對象 534
27.2.3 XML語言 537
27.2.4 DOM 538
27.2.5 CSS 538
27.3 Ajax與PHP的互動 538
27.3.1 通過GET方式與PHP進行互動 538
27.3.2 通過POST方式與PHP進行互動 540
27.4 Ajax開發常見問題 542
27.5 實戰 543
27.5.1 在PHP中套用Ajax技術檢測用戶名 543
27.5.2 在PHP中套用Ajax技術實現部落格
文章類別添加 544
27.5.3 使用jQuery製作級聯下拉列表框 546
27.5.4 套用Ajax技術刪除數據 548
27.5.5 套用Ajax技術製作分類列表框 550
27.6 本章小結 552
27.7 學習成果檢驗 552
第28章 綜合實例(四)--購物車 553
視頻講解:45分鐘
28.1 購物車模組概述 554
28.1.1 功能概述 554
28.1.2 購物車操作流程 554
28.1.3 程式預覽 554
28.2 資料庫設計 555
28.2.1 創建資料庫 555
28.2.2 創建數據表 555
28.3 首頁設計 556
28.3.1 首頁概述 556
28.3.2 首頁實現過程 557
28.4 登錄模組設計 558
28.4.1 登錄模組概述 558
28.4.2 用戶註冊 558
28.4.3 用戶登錄 560
28.5 商品展示模組設計 561
28.5.1 商品展示模組概述 561
28.5.2 商品展示模組 562
28.6 購物車模組設計 563
28.6.1 購物車模組概述 563
28.6.2 購物車展示 564
28.6.3 更改商品數量 565
28.6.4 刪除商品 566
28.6.5 保存購物車 567
28.7 技術提煉 569
28.7.1 資料庫連線、管理和分頁類檔案 569
28.7.2 Smarty模板配置類檔案 571
28.7.3 執行類的實例化檔案 571
28.7.4 Smarty模板頁中的框架技術 572
28.7.5 Ajax無刷新驗證技術 572
28.7.6 分頁技術 574
28.7.7 購物車中商品添加技術 574
第5篇 框 架 應 用
第29章 Smarty模板技術 578
視頻講解:102分鐘
29.1 Smarty簡介 579
29.1.1 Smarty模板引擎 579
29.1.2 開發模式與運行流程 579
29.2 Smarty的安裝配置 580
29.2.1 Smarty下載和安裝 580
29.2.2 Smarty配置 580
29.2.3 第一個Smarty程式 581
29.3 Smarty模板設計 582
29.3.1 Smarty模板檔案 583
29.3.2 注釋 583
29.3.3 變數 583
29.3.4 修飾變數 585
29.3.5 流程控制 586
29.3.6 內建函式 588
29.4 Smarty程式設計 590
29.4.1 Smarty中的常用方法 590
29.4.2 Smarty的配置變數 591
29.5 實戰 591
29.5.1 通過Smarty實現網頁的動靜分離 591
29.5.2 Smarty分頁類 593
29.5.3 網站公告 596
29.5.4 Smarty模板truncate()方法截取字元串 597
29.5.5 輸出會員信息 600
29.6 本章小結 603
29.7 學習成果檢驗 603
第30章 ThinkPHP框架 604
視頻講解:150分鐘
30.1 ThinkPHP簡介 605
30.1.1 ThinkPHP框架的特點 605
30.1.2 環境要求 605
30.1.3 下載ThinkPHP框架 605
30.2 ThinkPHP架構 606
30.2.1 ThinkPHP的目錄結構 606
30.2.2 自動生成目錄 606
30.2.3 項目目錄部署方案 607
30.2.4 命名規範 608
30.2.5 項目構建流程 608
30.3 ThinkPHP的配置 610
30.3.1 配置格式 610
30.3.2 調試配置 611
30.4 ThinkPHP的控制器 611
30.4.1 控制器 611
30.4.2 跨模組調用 612
30.5 ThinkPHP的模型 615
30.5.1 模型的命名 615
30.5.2 實例化模型 616
30.5.3 屬性訪問 619
30.5.4 連線資料庫 619
30.5.5 創建數據 622
30.5.6 連貫操作 623
30.5.7 CURD操作 624
30.6 ThinkPHP的視圖 626
30.6.1 模板定義 627
30.6.2 模板賦值 627
30.6.3 指定模板檔案 627
30.6.4 特殊字元串替換 628
30.7 內置ThinkTemplate模板引擎 629
30.8 實戰 631
30.8.1 用戶信息的查詢、更新和刪除 631
30.8.2 用戶登錄 633
30.8.3 商品信息的分頁輸出 636
30.8.4 新聞發布 637
30.8.5 帶查詢條件的分頁 641
30.9 本章小結 645
30.10 學習成果檢驗 645
第31章 綜合實例(五)--明日導航網 646
視頻講解:39分鐘
31.1 需求分析 647
31.2 系統設計 647
31.2.1 系統功能結構 647
31.2.2 系統預覽 647
31.3 資料庫設計 648
31.3.1 資料庫設計 648
31.3.2 數據表設計 648
31.3.3 連線資料庫 649
31.4 ThinkPHP架設項目結構 649
31.4.1 下載ThinkPHP框架 650
31.4.2 自動生成項目目錄 650
31.5 明日導航前台頁面設計 650
31.5.1 頁面設計概述 651
31.5.2 控制器的創建 652
31.5.3 視圖中套用到的模板標籤 653
31.5.4 在視圖中創建模板檔案 655
31.6 明日導航後台管理設計 656
31.6.1 後台管理概述 656
31.6.2 通過系統配置檔案存儲後台登錄數據 656
31.6.3 後台管理架構解析 657
31.6.4 ThinkPHP框架中的分頁技術 657
31.6.5 後台管理視圖中套用的模板標籤 658
31.6.6 後台登錄 659
31.6.7 後台管理主頁 660
31.6.8 高級類別管理 661
31.6.9 判斷訪問用戶的許可權 664
31.6.10 操作提示頁面 664
31.7 項目發布 665
31.8 本章小結 666
第6篇 項 目 實 戰
第32章 部落格管理系統 668
視頻講解:169分鐘
32.1 項目描述 669
32.2 系統分析 669
32.2.1 需求分析 669
32.2.2 系統目標 669
32.2.3 系統功能結構 670
32.2.4 系統流程圖 670
32.3 軟體開發環境 670
32.4 資料庫與數據表的設計 671
32.4.1 資料庫分析 671
32.4.2 資料庫E-R圖設計 671
32.4.3 創建資料庫和數據表 672
32.5 首頁設計 673
32.5.1 首頁概述 673
32.5.2 首頁技術分析 674
32.5.3 首頁的實現過程 675
32.6 用戶管理模組設計 676
32.6.1 用戶管理模組概述 676
32.6.2 用戶註冊 676
32.6.3 用戶登錄 678
32.6.4 查詢用戶信息 679
32.6.5 瀏覽用戶信息 680
32.7 文章管理模組設計 682
32.7.1 文章管理模組概述 682
32.7.2 文章管理模組技術分析 682
32.7.3 添加文章的實現過程 683
32.7.4 文章列表的實現過程 684
32.7.5 查看、評論文章的實現過程 686
32.7.6 刪除文章或評論的實現過程 688
32.8 圖片上傳模組設計 688
32.8.1 圖片上傳模組概述 689
32.8.2 圖片上傳模組技術分析 689
32.8.3 圖片上傳的實現過程 692
32.8.4 圖片瀏覽的實現過程 694
32.8.5 刪除圖片的實現過程 696
32.9 朋友圈模組設計 696
32.9.1 朋友圈模組概述 697
32.9.2 朋友圈模組技術分析 697
32.9.3 查詢好友的實現過程 697
32.10 項目發布 699
32.10.1 通過個人伺服器發布項目 699
32.10.2 通過租用空間發布項目 699
32.11 開發常見問題與解決 700
32.12 本章小結 701
第33章 套用Smarty模板開發
電子商務平台 702
視頻講解:281分鐘
33.1 項目描述 703
33.2 系統分析 703
33.2.1 需求分析 703
33.2.2 編寫項目計畫書 703
33.3 系統設計 703
33.3.1 系統目標 703
33.3.2 系統功能結構 704
33.3.3 系統流程圖 704
33.4 系統開發環境 705
33.5 資料庫與數據表的設計 705
33.5.1 資料庫分析 705
33.5.2 創建資料庫和數據表 706
33.6 搭建系統框架 707
33.7 公共檔案設計 708
33.7.1 資料庫連線檔案 708
33.7.2 Smarty配置檔案 708
33.7.3 XMLHttpRequest對象檔案 709
33.7.4 表單樣式檔案 709
33.8 前台首頁設計 711
33.9 登錄模組設計 712
33.9.1 用戶註冊 713
33.9.2 用戶登錄 717
33.9.3 找回密碼 719
33.10 會員信息模組設計 723
33.10.1 會員中心 723
33.10.2 安全退出 725
33.11 商品展示模組 726
33.11.1 創建PHP頁 726
33.11.2 創建模板頁 726
33.11.3 JavaScript腳本頁面 727
33.12 購物車模組設計 728
33.12.1 添加商品 728
33.12.2 顯示購物車 730
33.12.3 更改商品數量 731
33.12.4 刪除商品 732
33.12.5 保存購物車 734
33.13 收銀台模組設計 735
33.13.1 顯示訂單 736
33.13.2 填寫訂單 736
33.13.3 處理訂單 737
33.13.4 反饋訂單 739
33.13.5 查詢訂單 739
33.14 後台首頁設計 741
33.14.1 後台首頁布局 742
33.14.2 DIV+JavaScript+CSS實現樹狀選單 742
33.15 類別管理模組設計 743
33.15.1 添加類別 743
33.15.2 查看類別 745
33.16 訂單管理模組設計 749
33.17 開發的常見問題 751
33.17.1 解決Ajax的亂碼問題 751
33.17.2 使用JS腳本獲取、輸出標籤內容 751
33.17.3 使用浮動框架做關聯選單 752
33.17.4 禁用頁面快取 752
33.17.5 在新視窗中使用Session 752
33.17.6 防止站外連結 753
33.17.7 判斷上傳檔案格式 753
33.18 網站運行錯誤分析 753
33.18.1 資料庫導致的錯誤 754
33.18.2 Smarty模板的配置錯誤 754
33.19 本章小結 755
附錄A PHP編碼規則 756