第1章 PHP概述 001
1.1 什麽是PHP 002
1.2 PHP開發語言的特點 002
1.3 PHP的發展趨勢 003
1.4 如何學好PHP 004
1.5 PHP的語法結構 005
1.5.1 PHP標識符的規則 005
1.5.2 PHP標記符的作用 005
1.6 程序註釋 006
1.6.1 使用PHP註釋 006
1.6.2 使用HTML註釋 007
1.6.3 有效使用註釋 007
1.7 PHP輸出指令 008
1.7.1 應用print()語句輸出字符 008
1.7.2 應用echo()語句輸出字符 009
1.7.3 應用printf()語句格式化輸出字符 010
1.7.4 應用sprintf()語句格式化輸出字符 011
1.8 PHP包含語句 011
1.8.1 應用include()語句包含文件 011
1.8.2 應用require()語句包含文件 012
1.8.3 應用include_once()語句包含文件 013
1.8.4 應用require_once()語句包含文件 013
1.8.5 include()語句和require()語句的區別 014
1.8.6 include_once()語句和require_once()語句的區別 016
1.9 PHP動態網頁的工作流程 016
1.10 體驗PHP——編寫第1個PHP Web 016
1.10.1 創建站點 016
1.10.2 使用Dreamweaver創建PHP文件 017
1.10.3 創建PHP標記 017
1.10.4 編寫PHP代碼 017
1.10.5 存儲文件 018
1.10.6 網站運行結果 018
1.11 獲取幫助信息 018
1.11.1 PHP學習工具和資料下載 019
1.11.2 獲取PHP的源代碼資源 019
1.12 本章小結 020
第2章 PHP環境的安裝與配置 021
2.1 Windows下應用AppServ快速配置PHP開發環境 022
2.2 Windows下Apache+MySQL+PHP的安裝配置 024
2.2.1 Windows下Apache的安裝配置 024
2.2.2 Windows下MySQL的安裝配置 027
2.2.3 Windows下PHP的安裝配置 028
2.3 在Windows下架設IIS+PHP的執行環境 029
2.3.1 IIS的安裝 030
2.3.2 架設PHP到IIS 030
2.4 Linux下Apache+MySQL+PHP的安裝配置 032
2.4.1 Linux下Apache的安裝配置 032
2.4.2 Linux下MySQL的安裝配置 033
2.4.3 Linux下PHP的安裝配置 034
2.5 獲取PHP的配置信息 035
2.5.1 Apache服務器的基本配置 035
2.5.2 php.ini文件的基本配置 035
2.6 解決PHP的常見配置問題 037
2.6.1 解決Apache服務器端口沖突 037
2.6.2 更改Apache服務器默認存儲的文件路徑 037
2.6.3 在php.ini文件中更改上傳文件的大小 037
2.6.4 增加PHP擴展模塊 038
2.6.5 修改php.ini文件以支持MySQL數據庫 038
2.7 本章小結 038
第3章 PHP語言基礎 039
3.1 PHP常量 040
3.1.1 聲明和使用常量 040
3.1.2 預定義常量 041
3.2 PHP變量 042
3.2.1 理解變量 042
3.2.2 聲明變量 043
3.2.3 變量作用域 043
3.2.4 可變變量 045
3.2.5 預定義變量 045
3.2.6 變量的生存周期 046
3.3 數據類型 046
3.3.1 標量數據類型 046
3.3.2 復合數據類型 050
3.3.3 特殊數據類型 051
3.3.4 轉換數據類型 052
3.3.5 檢測數據類型 053
3.4 PHP的運算符 054
3.4.1 操作算術運算符 054
3.4.2 操作字符串運算符 055
3.4.3 操作賦值運算符 055
3.4.4 操作位運算符 056
3.4.5 遞增或遞減運算符 056
3.4.6 操作邏輯運算符 057
3.4.7 操作比較運算符 058
3.4.8 其他運算符 059
3.4.9 運算符的使用規則 059
3.5 PHP的表達式 060
3.6 自定義函數 061
3.6.1 定義和調用函數 061
3.6.2 在函數間傳遞參數 062
3.6.3 函數的返回值 063
3.7 本章小結 064
第4章 流程控制語句 065
4.1 算法 066
4.1.1 什麽是算法 066
4.1.2 算法的描述方法 066
4.1.3 程序的3種控制結構 067
4.2 條件控制語句 068
4.2.1 if條件控制語句 068
4.2.2 switch多分支語句 070
4.2.3 if和switch語句的區別 072
4.3 循環語句 074
4.3.1 while循環語句 074
4.3.2 do...while循環語句 076
4.3.3 for循環語句 077
4.3.4 foreach循環語句 078
4.3.5 各循環語句間的區別 079
4.4 跳轉語句 080
4.4.1 break跳轉語句 080
4.4.2 continue跳轉語句 081
4.4.3 return跳轉語句 082
4.5 try…catch…throw語句 083
4.6 流程控制語句的嵌套 083
4.7 本章小結 084
第5章 PHP與Web頁面交互 085
5.1 表單數據的提交方式 086
5.1.1 通過GET方法提交數據 086
5.1.2 通過POST方法提交數據 087
5.2 獲取提交的表單數據 088
5.2.1 獲取按鈕的數據 088
5.2.2 獲取文本區域的數據 089
5.2.3 獲取單選按鈕的數據 090
5.2.4 獲取復選框的數據 091
5.2.5 獲取列表框的數據 092
5.2.6 獲取文本域的數據 093
5.2.7 獲取文件域的數據 094
5.2.8 獲取隱藏域的數據 094
5.3 在PHP中處理表單變量 095
5.4 對表單傳遞的變量值進行編碼與解碼 096
5.4.1 URL編碼與解碼 096
5.4.2 BASE64編碼與解碼 097
5.5 本章小節 098
第6章 字符串操作 099
6.1 字符串簡介 100
6.2 單引號和雙引號的區別 100
6.3 字符串的連接符 101
6.4 字符串操作 101
6.4.1 去除字符串首尾空格和特殊字符 101
6.4.2 字符串與HTML相互轉換 103
6.4.3 轉義、還原字符串數據 104
6.4.4 獲取字符串的長度 106
6.4.5 截取字符串 107
6.4.6 比較字符串 108
6.4.7 檢索字符串 111
6.4.8 替換字符串 113
6.4.9 格式化字符串 116
6.4.10 連接、分割字符串 117
6.4.11 URL編碼解碼函數 119
6.5 本章小結 121
第7章 正則表達式 122
7.1 什麽是正則表達式 123
7.1.1 正則表達式的發展史 123
7.1.2 正則表達式中的術語 123
7.2 正則表達式的語法規則 123
7.2.1 行定位符(^和$) 124
7.2.2 單詞定界符(\b、\B) 125
7.2.3 字符類([ ]) 125
7.2.4 選擇字符(|) 126
7.2.5 連字符(-) 127
7.2.6 排除字符([^]) 127
7.2.7 限定符(? * + {n,m}) 127
7.2.8 點號字符(.) 128
7.2.9 轉義字符(\) 128
7.2.10 反斜線(\) 128
7.2.11 括號字符(()) 129
7.2.12 反向引用 130
7.2.13 捕獲 130
7.2.14 斷言(環視) 130
7.2.15 模式修飾符 131
7.2.16 模式匹配的順序 131
7.3 POSIX擴展正則表達式函數 132
7.3.1 ereg()函數和eregi()函數 132
7.3.2 ereg_replace()函數和eregi_replace()函數 133
7.3.3 split()函數和spliti()函數 134
7.4 PCRE兼容正則表達式函數 135
7.4.1 preg_grep()函數 135
7.4.2 preg_match()函數和preg_match_all()函數 135
7.4.3 preg_quote()函數 137
7.4.4 preg_replace()函數 137
7.4.5 preg_replace_callback()函數 137
7.4.6 preg_split()函數 138
7.5 本章小結 138
第8章 PHP數組 139
8.1 數組的概述 140
8.2 數組的基本操作 140
8.2.1 聲明數組 140
8.2.2 輸出數組 141
8.2.3 定位數組 141
8.2.4 遍歷數組 143
8.2.5 增加、刪除數組元素 147
8.2.6 確定數組大小和惟壹性 149
8.2.7 數組的排序 150
8.2.8 數組的合並與拆分 151
8.2.9 數組和字符串之間的轉換 154
8.3 其他數組函數 155
8.3.1 創建指定範圍的數組 155
8.3.2 對數組中的元素進行隨機排序 156
8.3.3 對數組中所有元素進行求和 156
8.3.4 將壹維數組拆分為多維數組 157
8.4 PHP全局數組 158
8.4.1 $_SERVER[ ]全局數組 158
8.4.2 $_GET[ ]和$_POST[ ]全局數組 158
8.4.3 $_COOKIE全局數組 158
8.4.4 $_ENV[ ]全局數組 158
8.4.5 $_REQUEST[ ]全局數組 158
8.4.6 $_SESSION[ ]全局數組 158
8.4.7 $_FILES[ ]全局數組 159
8.5 本章小結 160
第9章 日期和時間 161
9.1 日期和時間的概述 162
9.2 處理日期和時間 162
9.2.1 獲取日期和時間 163
9.2.2 獲取日期和時間信息 164
9.2.3 檢驗日期和時間的有效性 165
9.2.4 輸出格式化的日期和時間 166
9.3 PHP的時間戳 168
9.3.1 PHP中的時間戳 168
9.3.2 獲取格林威治標準時間的時間戳 168
9.3.3 獲取本地化時間戳 169
9.3.4 獲取當前時間戳 171
9.4 本章小結 171
第10章 文件和目錄處理技術 172
10.1 文件處理技術的基本操作 173
10.1.1 打開文件 173
10.1.2 讀取文件 173
10.1.3 寫入文件 178
10.1.4 刪除文件 179
10.1.5 關閉文件 179
10.1.6 復制文件 179
10.1.7 移動和重命名文件 180
10.2 文件的高級處理技術 180
10.2.1 訪問遠程文件 181
10.2.2 測試文件指針的位置 181
10.2.3 文件指針的定位 181
10.2.4 鎖定文件 183
10.3 目錄操作技術 183
10.3.1 打開目錄 183
10.3.2 讀取目錄 183
10.3.3 建立目錄 184
10.3.4 刪除目錄 184
10.3.5 改變目錄 185
10.3.6 關閉目錄 185
10.4 文件上傳和下載技術 185
10.4.1 開啟PHP文件上傳功能 185
10.4.2 POST方法上傳文件 186
10.4.3 上傳多個文件 187
10.4.4 生成臨時文件 188
10.4.5 下載文件 188
10.5 本章小結 189
第11章 圖形圖像處理技術 190
11.1 GD函數庫的概述 191
11.1.1 Windows下打開GD2函數庫支持 191
11.1.2 Linux下打開GD2函數庫支持 191
11.1.3 應用GD2函數創建圖像 192
11.2 基本的圖像處理技術 193
11.2.1 創建畫布 193
11.2.2 設置顏色 193
11.2.3 生成圖像 194
11.2.4 銷毀圖像 195
11.2.5 繪制點與線 195
11.2.6 繪制幾何圖形 197
11.2.7 填充幾何圖形 198
11.2.8 輸出文字 201
11.3 Jpgraph的安裝與配置 203
11.3.1 Jpgraph的安裝 204
11.3.2 Jpgraph的配置 204
11.4 圖形圖像的典型應用 204
11.4.1 應用圖像處理技術生成驗證碼 204
11.4.2 應用圖像處理技術生成餅形圖 206
11.4.3 應用柱形圖統計商品月銷量 208
11.4.4 應用折線圖分析學習PHP的過程 209
11.5 本章小結 210
第12章 Cookie和會話控制 211
12.1 概述 212
12.1.1 Cookie概述 212
12.1.2 會話控制 212
12.2 Cookie的操作 212
12.2.1 設置Cookie 212
12.2.2 訪問Cookie 213
12.2.3 刪除Cookie 213
12.2.4 Cookie數組 214
12.3 Cookie的應用 215
12.4 會話的操作 216
12.4.1 會話的基本方式 216
12.4.2 配置PHP的會話 217
12.4.3 創建會話 217
12.5 會話的應用 219
12.5.1 登錄驗證 219
12.5.2 通過Session禁用頁面刷新 221
12.6 本章小結 222
第13章 面向對象 223
13.1 概述 224
13.1.1 面向對象的概念 224
13.1.2 面向對象語言的3大特點 224
13.1.3 PHP 5.0面向對象的新特性 225
13.2 類和對象 225
13.2.1 類的結構及聲明方式 225
13.2.2 屬性和方法的定義 225
13.2.3 使用構造函數 226
13.2.4 使用析構函數 227
13.2.5 類的實例化 227
13.3 控制訪問權限 228
13.4 類的繼承和重載 228
13.4.1 繼承的概念 228
13.4.2 PHP中實現繼承的方法 228
13.4.3 重載的概念 229
13.4.4 PHP中實現類重載的方法 229
13.4.5 用final關鍵字對繼承和重載進行限制 229
13.5 接口 230
13.5.1 接口的概念 230
13.5.2 PHP實現接口 230
13.6 PHP面向對象新特性 231
13.6.1 Per-Class常量的應用 231
13.6.2 對象的克隆 231
13.6.3 __autoload()方法 232
13.6.4 使用instanceof關鍵字判斷實例類型 232
13.6.5 使用this關鍵字調用類成員 232
13.6.6 使用parent關鍵字調用父類成員 233
13.6.7 使用self關鍵字調用類體中的靜態成員 233
13.6.8 輔助函數 234
13.7 PHP中面向對象的應用 238
13.7.1 應用面向對象的方式實現用戶身份驗證 238
13.7.2 數據的分頁顯示 239
13.8 本章小結 241
第14章 MySQL數據庫基礎 242
14.1 MySQL概述 243
14.1.1 MySQL的特點 243
14.1.2 SQL和MySQL 243
14.2 MySQL服務器的啟動和關閉 244
14.2.1 啟動MySQL服務器 244
14.2.2 連接MySQL服務器 245
14.2.3 關閉MySQL服務器 245
14.3 操作數據庫 246
14.3.1 創建數據庫 246
14.3.2 選擇數據庫 247
14.3.3 刪除數據庫 247
14.4 操作數據表 247
14.4.1 創建表 248
14.4.2 修改表 249
14.4.3 刪除表 249
14.5 操作數據 250
14.5.1 添加語句(INSERT) 250
14.5.2 修改語句(UPDATE) 251
14.5.3 刪除語句(DELETE) 251
14.5.4 批量增加記錄語句(LOAD DATA和MYSQLIMPORT) 251
14.6 數據查詢語句 252
14.6.1 運用SELECT查詢(對數據表的選擇) 252
14.6.2 WHERE條件語句的應用 253
14.6.3 GROUP BY 對結果分組 254
14.6.4 DISTINCT在結果中去除重復行 254
14.6.5 ORDER BY對結果排序 254
14.6.6 LIKE應用 255
14.6.7 CONCAT聯合多列 255
14.6.8 LIMIT限定結果行數 256
14.6.9 使用函數和表達式 256
14.7 數據類型 257
14.7.1 數字類型 257
14.7.2 字符串類型 258
14.7.3 日期和時間數據類型 259
14.8 PhpMyAdmin圖形化管理工具 260
14.8.1 庫級操作 260
14.8.2 表級操作 261
14.8.3 增刪改數據 262
14.8.4 查詢數據 263
14.8.5 數據的導入與導出 264
14.9 本章小結 266
第15章 數據庫編程技術 267
15.1 PHP操縱MySQL數據庫 268
15.1.1 建立與MySQL數據庫的連接 268
15.1.2 選擇和使用MySQL數據庫 268
15.1.3 執行SQL指令 269
15.1.4 分析結果集 269
15.1.5 斷開與MySQL數據庫的連接 270
15.2 管理MySQL數據庫中的數據 271
15.2.1 向數據庫中添加數據 271
15.2.2 編輯數據庫數據 272
15.2.3 從數據庫中刪除數據 274
15.2.4 批量數據操作 276
15.3 對MySQL表的查詢 277
15.3.1 通用查詢 277
15.3.2 高級查詢 279
15.3.3 分組統計 280
15.3.4 對查詢結果分頁顯示 282
15.3.5 對查詢結果進行跳轉分頁顯示 283
15.4 數據備份和恢復 286
15.5 本章小結 288
第16章 PHP的字符編碼 289
16.1 了解網頁字符編碼 290
16.1.1 ASCII 字符集 290
16.1.2 ISO 8859 字符集 290
16.1.3 GB2312與GBK編碼 290
16.1.4 Unicode字符集 291
16.1.5 UTF-8編碼 291
16.2 PHP網頁的字符編碼 292
16.2.1 正確使用文件編碼 292
16.2.2 編碼轉換 293
16.2.3 檢測字符串的編碼 294
16.2.4 字符編碼的優先級 294
16.2.5 亂碼產生的根源和解決方案 295
16.3 PHP開發中的中文編碼問題 295
16.3.1 數據庫中的字符集編碼問題 295
16.3.2 解決頁面中的亂碼問題 296
16.3.3 通過PHP自定義函數無亂碼截取中文字符串 298
16.4 PHP的區域化設置 300
16.4.1 PHP網頁的區域化 301
16.4.2 使用setlocale()函數設置區域化 302
16.5 本章小節 302
第17章 PHP的調試與異常處理 303
17.1 基本調試策略 304
17.2 常見錯誤分析 304
17.2.1 語法錯誤 304
17.2.2 語義錯誤 307
17.2.3 註釋錯誤 307
17.2.4 運行錯誤 308
17.2.5 邏輯錯誤 310
17.3 PHP.INI中的錯誤處理設置 310
17.4 錯誤處理 312
17.4.1 錯誤的隱藏 312
17.4.2 錯誤的定制 312
17.4.3 超時錯誤的處理 313
17.5 程序調試 313
17.5.1 應用DIE語句調試 313
17.5.2 應用PRINT語句調試 314
17.5.3 應用MySQL_error語句輸出錯誤信息 315
17.6 MySQL的常見錯誤 316
17.6.1 PHP與MySQL連接錯誤 316
17.6.2 解決數據庫亂碼問題 317
17.6.3 上傳二進制數據到數據庫失敗 317
17.7 本章小結 319
第18章 PHP與XML的網絡開發 320
18.1 XML的概述 321
18.2 XML語法 321
18.2.1 XML文檔結構 321
18.2.2 XML聲明 321
18.2.3 處理指令 322
18.2.4 XML註釋 322
18.2.5 XML元素 322
18.2.6 XML屬性 323
18.2.7 使用CDATA標記 323
18.2.8 XML命名空間 324
18.3 在PHP中創建XML文檔 324
18.4 通過DOM操作XML文檔 325
18.4.1 通過DOM類庫創建XML文檔 325
18.4.2 通過getElementsByTagName()方法讀取XML 327
18.4.3 通過DOM類庫向XML中添加數據 328
18.4.4 通過Xpath查詢XML中的數據 330
18.4.5 通過replaceChild()方法修改XML文檔 331
18.4.6 通過removeChild()方法刪除XML文檔 334
18.5 本章小結 335
第19章 Smarty模板技術 336
19.1 Smarty簡介 337
19.1.1 什麽是Smarty 337
19.1.2 Smarty與MVC 337
19.1.3 Smarty的特點 337
19.2 Smarty的安裝配置 337
19.2.1 Smarty下載與安裝 337
19.2.2 第1個Smarty程序 338
19.2.3 配置Smarty 339
19.3 Smarty模板設計 340
19.3.1 Smarty模板文件 340
19.3.2 註釋 340
19.3.3 變量 340
19.3.4 修飾變量(variable modifers) 343
19.3.5 內建函數 344
19.3.6 自定義函數 349
19.4 Smarty程序設計 351
19.4.1 Smarty中的常用方法 352
19.4.2 Smarty的配置變量 353
19.4.3 Smarty緩存 354
19.5 本章小結 354
第20章 註冊和登錄 355
20.1 設計思路 356
20.1.1 功能闡述 356
20.1.2 程序業務流程 356
20.1.3 文件組織結構 356
20.2 數據庫設計 357
20.3 連接數據庫 358
20.3.1 關鍵函數 358
20.3.2 功能實現 359
20.4 用戶註冊模塊 359
20.4.1 關鍵函數 359
20.4.2 頁面設計 360
20.4.3 功能實現 361
20.5 檢測用戶是否被占用 362
20.5.1 關鍵函數 362
20.5.2 頁面設計 363
20.5.3 功能實現 364
20.6 驗證用戶註冊信息是否合法 365
20.6.1 關鍵函數 365
20.6.2 功能實現 365
20.7 用戶登錄 366
20.7.1 關鍵函數 366
20.7.2 頁面設計 367
20.7.3 功能實現 368
20.8 圖片驗證碼功能 369
20.8.1 關鍵函數介紹 369
20.8.2 頁面設計 371
20.8.3 功能實現 371
20.9 退出登錄功能 372
20.9.1 關鍵函數 372
20.9.2 功能實現 372
20.10 本章小節 372
第21章 留言本 373
21.1 設計思路 374
21.1.1 功能闡述 374
21.1.2 程序業務流程 374
21.1.3 文件組織結構 375
21.2 數據庫設計 376
21.3 連接數據庫 377
21.3.1 關鍵函數介紹 377
21.3.2 功能實現 377
21.4 添加留言模塊 378
21.4.1 關鍵函數 378
21.4.2 頁面設計 378
21.4.3 功能實現 380
21.5 查看留言模塊 381
21.5.1 關鍵函數 381
21.5.2 頁面設計 381
21.5.3 功能實現 381
21.6 修改留言模塊 383
21.6.1 關鍵函數 383
21.6.2 頁面設計 384
21.6.3 功能實現 385
21.7 刪除留言模塊 386
21.7.1 關鍵函數 386
21.7.2 頁面設計 386
21.7.3 功能實現 387
21.8 查詢留言模塊 388
21.8.1 關鍵函數 388
21.8.2 頁面設計 388
21.8.3 功能實現 389
21.9 本章小結 390
第22章 電子商務 391
22.1 需求分析 392
22.2 系統分析和設計 392
22.2.1 可行性分析 392
22.2.2 功能結構分析和設計 392
22.2.3 系統流程概述 393
22.2.4 開發環境 394
22.3 數據庫設計 394
22.3.1 數據庫的分析 395
22.3.2 創建數據庫 395
22.3.3 創建數據表 395
22.3.4 數據表的結構 395
22.4 技術準備 398
22.4.1 代碼書寫規則 398
22.4.2 網站架設之初 398
22.4.3 文件管理規劃 399
22.5 前臺開發 399
22.5.1 設計分析 399
22.5.2 前臺首頁的實現 399
22.5.3 商品展示模塊的實現 402
22.5.4 購物車的實現 405
22.5.5 收銀臺的實現 408
22.5.6 用戶登錄模塊的實現 409
22.5.7 本站公告模塊的實現 417
22.6 後臺開發 418
22.6.1 設計分析 418
22.6.2 後臺首頁 418
22.6.3 後臺登錄模塊 420
22.6.4 商品信息管理模塊 422
22.6.5 短信管理模塊 426
22.6.6 訂單信息管理模塊 428
22.7 電子商務完整清單 431
22.8 本章小結 432
第23章 播客 433
23.1 了解播客 434
23.1.1 播客起源 434
23.1.2 播客的發展前景 434
23.2 系統設計 435
23.2.1 系統功能概述 435
23.2.2 系統功能結構 435
23.2.3 系統流程概述 436
23.2.4 開發環境 437
23.2.5 文件夾組織結構 437
23.3 Adodb類庫的安裝配置 437
23.4 數據庫設計 438
23.4.1 數據庫的分析 438
23.4.2 創建數據庫 438
23.4.3 創建數據表 438
23.5 前臺開發 439
23.5.1 設計分析 439
23.5.2 在線播放功能的實現 440
23.5.3 最新推出功能的實現 448
23.5.4 上傳視頻文件功能的實現 450
23.5.5 視頻下載功能的實現 452
23.5.6 創建播客個人主頁 453
23.5.7 站內訂閱 457
23.5.8 訂閱管理 458
23.6 後臺開發 462
23.6.1 設計分析 462
23.6.2 上傳視頻管理功能的實現 463
23.6.3 動態創建視頻文件類型 465
23.6.4 管理員管理 466
23.7 本章小結 468
附錄 實例快速檢索 469