目 錄
第1篇 PHP動態網站和PHP程序語言基礎入門篇
第1章 準備基礎知識、開發環境及配置
運行環境 2
視頻講解:47分鍾
1.1 正確認識PHP動態網站開發 3
1.1.1 正確認識PHP的開發工具 3
1.1.2 正確認識PHP的運行環境 3
1.1.3 關於標準和實現 3
1.2 安裝和配置PHP動態網站的
運行環境 4
1.2.1 下載和安裝PHP應用程序
服務器 4
1.2.2 瞭解PHP的版本 5
1.2.3 在Apache下配置PHP 6
1.2.4 在IIS7.0下配置PHP 9
第2章 怎樣創建和執行PHP動態網
頁——基本操作和基本原理 11
視頻講解:26分鍾
2.1 創建第一個PHP網頁 12
2.1.1 用什麼來創建PHP網頁 12
2.1.2 在哪裏放置PHP網頁 12
2.1.3 通過服務器請求PHP網頁 12
2.2 PHP網絡應用程序的工作原理 13
2.2.1 Web應用程序的基本工作
原理 13
2.2.2 PHP網絡應用程序的基本
工作原理 14
2.3 怎樣在PHP網頁中編寫PHP
程序代碼 15
2.3.1 定義PHP執行塊 16
2.3.2 PHP輸齣指令 17
2.3.3 什麼是script語言 17
2.3.4 PHP代碼與HTML代碼
混閤 18
第3章 程序開發的基石——聲明變量和
使用變量 19
視頻講解:53分鍾
3.1 變量的聲明 20
3.1.1 聲明和命名變量 20
3.1.2 變量的命名規範 21
3.1.3 變量的數據類型 21
3.1.4 易犯的錯誤 24
3.2 在程序中使用變量 26
3.2.1 為變量賦值和更改變量值 26
3.2.2 使用變量和獲取變量值 27
3.2.3 變量的初始化 28
3.3 常量 28
3.3.1 PHP內建常量 29
3.3.2 自定義常量 30
3.4 變量的傳值和傳址 31
3.4.1 傳值變量——按值傳遞 31
3.4.2 傳址變量——按引用傳遞 31
3.4.3 變量的引用 32
3.5 內存使用規則——堆和棧 33
3.5.1 棧的使用規則 33
3.5.2 堆的使用規則 34
3.6 數據類型轉換 35
3.6.1 強製數據類型轉換 35
3.6.2 隱式數據類型轉換 35
3.7 可變變量 36
第4章 PHP語法規範和良好的
編程習慣 37
視頻講解:60分鍾
4.1 空白和多行書寫 38
4.1.1 空白 38
4.1.2 多行書寫 38
4.2 “->”語法 38
4.3 捲麯花括號 39
4.3.1 引號中包含變量 39
4.3.2 用捲麯花括號界定變量名 39
4.4 分號 40
4.5 圓括號 40
4.6 字母的大小寫 41
4.7 程序注釋 41
4.7.1 單行注釋和尾隨注釋 41
4.7.2 多行注釋 41
4.7.3 文檔注釋 42
4.7.4 使用HTML注釋 42
4.8 關鍵字 43
4.9 培養良好的編程習慣 43
4.9.1 通用的變量名、方法名、類名
命名約定 43
4.9.2 重構 45
4.9.3 使用注釋 45
4.9.4 養成控製內存的好習慣 46
4.9.5 優化代碼的一般常識 47
第5章 數據運算和運算規則 49
視頻講解:37分鍾
5.1 PHP錶達式 50
5.1.1 簡單錶達式和復閤錶達式 50
5.1.2 賦值錶達式和單值錶達式 50
5.2 算術運算符 50
5.3 字符串運算符 52
5.4 賦值運算符 53
5.5 比較運算符和邏輯運算符 54
5.5.1 考慮數據類型 55
5.5.2 全等運算符 56
5.5.3 易犯錯的比較運算 57
5.6 位運算符 57
5.7 其他運算符 58
5.7.1 三元條件運算符 58
5.7.2 instanceof運算符 59
5.8 運算符的使用規則 59
5.8.1 運算符優先級規則 59
5.8.2 運算符結閤規則 59
第6章 流程控製 61
視頻講解:33分鍾
6.1 語句和語句塊 62
6.2 if...else條件語句 62
6.3 switch條件語句 66
6.4 do...while循環 68
6.4.1 第一種模式 68
6.4.2 第二種模式 68
6.5 for循環 69
6.6 foreach循環 70
6.7 其他的流程控製 70
6.7.1 break語句 71
6.7.2 continue語句 71
6.7.3 declare語句 72
6.7.4 try...catch...throw語句 72
6.7.5 goto語句 73
6.8 流程控製總結 74
第2篇 PHP數據處理和函數應用篇
第7章 變量處理 77
視頻講解:70分鍾
7.1 呈現變量的結構 78
7.2 強製數據類型轉換 79
7.2.1 轉換為整型 79
7.2.2 轉換為邏輯值 80
7.2.3 轉換為浮點數 80
7.2.4 字符串轉換 80
7.2.5 轉換為數組 80
7.2.6 轉換為對象 81
7.2.7 字符串轉換為數值 81
7.2.8 使用settype()函數轉換數據
類型 81
7.2.9 使用其他函數轉換數據類型 81
7.3 變量的數據類型判斷 82
7.4 判斷變量是否為空 83
7.5 isset()語言結構和unset()語言
結構 84
第8章 數組、多維數組、復閤數組
(哈希、映射) 85
視頻講解:90分鍾
8.1 創建數組 86
8.1.1 創建數組的基本方法 86
8.1.2 索引數組 86
8.1.3 多維數組 88
8.1.4 復閤數組 89
8.1.5 刪除數組或數組元素 91
8.2 使用運算符進行數組運算 91
8.3 數組操作函數 92
8.3.1 常用的基本操作 94
8.3.2 獲取數組的元素數量 95
8.3.3 分彆獲取數組的鍵和值 95
8.3.4 遍曆數組 96
8.3.5 數組的排序 98
第9章 在PHP中使用正則錶達式 102
視頻講解:45分鍾
9.1 字符串處理函數 103
9.1.1 加密算法 106
9.1.2 使用數組語法處理字符串 107
9.2 使用正則錶達式處理字符串 107
9.2.1 正則錶達式基本語法 108
9.2.2 優先權順序 112
9.3 使用函數處理正則錶達式 113
9.3.1 Perl兼容正則錶達式函數 113
9.3.2 瞭解PCRE模式修正符 120
9.3.3 使用正則錶達式判斷字符串
是否是全中文 121
9.4 POSIX擴展正則錶達式函數 121
思考與練習 122
第10章 處理日期和時間 123
視頻講解:47分鍾
10.1 使用DateTime類處理日期和
時間 124
10.1.1 日期和時間操作中常用到的
概念 124
10.1.2 配置選項 125
10.1.3 DateTime類的構造方法 125
10.1.4 格式化日期和時間 126
10.1.5 修改日期和時間 128
10.2 使用DateTimeZone類處理
時區 129
10.3 使用DateInterval類處理時間
間隔 130
10.3.1 createFromDateString()方法 131
10.3.2 format()方法 131
10.3.3 使用日期時間間隔改變
DateTime 132
10.4 使用DatePeriod類創建
時期段 133
10.5 用於處理日期和時間的相關
函數 135
第11章 數學運算和其他常用全局
函數 137
視頻講解:20分鍾
11.1 數學運算函數 138
11.2 其他常用函數 140
11.2.1 中止執行當前網頁代碼——
exit()函數和die()函數 140
11.2.2 延遲執行——sleep()函數、
usleep()函數、time_nanosleep()
函數、time_sleep_until()
函數 141
11.2.3 生成唯一的ID——uniqid()
函數 142
11.2.4 二進製轉換——pack()函數、
unpack()函數 143
第12章 自定義函數及函數對變量的
影響 145
視頻講解:71分鍾
12.1 函數的定義 146
12.2 函數的調用 146
12.2.1 在函數中定義參數的
初始值 147
12.2.2 條件函數和嵌套函數 147
12.2.3 可變長度參數和函數處理
函數 148
12.2.4 形參和實參 148
12.2.5 匿名函數的定義 149
12.3 變量的作用範圍和生命周期 150
12.3.1 script級變量和局部變量 150
12.3.2 全局變量 150
12.3.3 靜態變量 151
12.4 在函數中使用引用 152
12.4.1 在函數中傳遞引用 152
12.4.2 函數返迴引用 153
12.5 函數定義的位置和共享——動態
包含 154
12.5.1 配置動態包含的目錄 155
12.5.2 被包含文件的位置和權限 155
12.5.3 其他實現動態包含的語言
結構 155
12.5.4 被包含文件的返迴值 156
第3篇 與Web頁麵、Ajax交互應用程序篇
第13章 人機交互的基石——動態網頁的
請求和響應 158
13.1 瞭解請求和響應的基本過程 159
13.1.1 請求和響應的基本過程 159
13.1.2 瞭解URI、URL和URN 160
13.2 HTTP協議基礎 161
13.2.1 瞭解HTTP消息的內容 161
13.2.2 瞭解HTTP請求的內容 162
13.2.3 瞭解HTTP響應的內容 163
13.2.4 瞭解HTTP消息報頭的
內容 165
13.3 在PHP程序中獲取和處理請求
報頭 166
13.4 對請求作齣響應 169
13.4.1 返迴消息正文給客戶端 170
13.4.2 返迴響應狀態行和響應報頭
給客戶端 170
13.4.3 緩存對消息報頭的影響 171
13.4.4 重定嚮 173
13.4.5 設置響應內容的格式和
類型 174
13.4.6 遍曆響應報頭 174
13.5 使用網頁緩存優化網絡程序 175
13.5.1 服務器端網頁緩存的處理 175
13.5.2 最佳實踐——緩存服務器端
復雜運算 177
13.5.3 客戶端網頁緩存的處理 178
思考與練習 180
第14章 使用HTML錶單開發PHP交互式
應用程序 181
14.1 創建錶單 182
14.1.1 HTML錶單基本知識 182
14.1.2 使用樣式錶控製錶單的
呈現 185
14.1.3 創建訪客留言錶單 186
14.2 接收錶單數據 188
14.2.1 瞭解POST和GET方法 188
14.2.2 接收錶單提交的數據——POST
和GET方法 189
14.2.3 易犯的錯誤——處理單名
多值錶單 191
14.2.4 遍曆錶單變量 192
14.2.5 處理結果不良好的控件 192
14.2.6 其他處理錶單的方法 193
14.2.7 關於圖形提交按鈕 194
14.3 使用PHP實現文件上傳 194
14.4 關於register_globals配置 197
思考與練習 198
第15章 人機交互的狀態維護——
Session、Cookie和狀態
管理 199
15.1 理解Session和Cookie 200
15.1.1 什麼是Cookie 200
15.1.2 什麼是Session 201
15.1.3 瞭解Cookie的格式和內容 201
15.1.4 Session和Cookie的使用
環境 203
15.2 使用Cookie完成狀態管理 203
15.2.1 怎樣傳送和使用Cookie 204
15.2.2 創建Cookie 205
15.2.3 訪問Cookie 205
15.2.4 設置Cookie路徑 206
15.2.5 易犯的錯誤——檢查瀏覽器
是否接受Cookie 206
15.3 使用Session完成狀態管理 208
15.3.1 激活PHP網頁中的Session
支持 208
15.3.2 怎樣傳送和使用Session 209
15.3.3 創建和管理Session 212
15.3.4 啓動和結束Session 214
15.3.5 Session的相關配置 215
15.3.6 管理Session的相關函數 218
15.3.7 使用URL參數傳遞
Session ID 222
15.4 其他維護狀態的方法 222
15.5 易犯的錯誤 223
思考與練習 223
第16章 JavaScript、Ajax、jQuery和
PHP之間的交互 224
16.1 一個標準的Ajax應用所應
具備的步驟 225
16.1.1 編寫PHP程序處理Ajax
請求和作齣響應 226
16.1.2 編碼混亂問題的解決 227
16.1.3 使用代理實現跨域請求 227
16.2 使用JSON編碼 228
16.2.1 對JSON格式的字符串進行
解碼 229
16.2.2 對變量進行JSON編碼 229
16.2.3 處理解析錯誤 230
16.2.4 客戶端數據處理 230
16.3 開發jQuery for PHP程序 231
第17章 使用HTML 5服務器推送技術和
Web Socket實現交互操作 233
17.1 服務器推送技術 234
17.1.1 使用Server-Sent Event入門 234
17.1.2 服務器要求 235
17.1.3 使用EventSource對象 236
17.2 Web Socket套接字連接 237
17.2.1 使用Web Socket入門 237
17.2.2 關於Web Socket通信協議 239
第4篇 PHP麵嚮對象開發、模式和應用篇
第18章 麵嚮對象編程(OOP)——創建
類和使用類 242
18.1 澄清——必須首先建立正確的
麵嚮對象編程思想 243
18.1.1 對象的抽象 243
18.1.2 對象的使用 244
18.1.3 易犯的錯誤——不要讓“一切
皆是對象”變成瞭“一切皆
是類” 244
18.1.4 麵嚮對象程序設計的優點和
基本特徵 245
18.1.5 對比——麵嚮對象和結構化
程序設計的區彆 245
18.2 創建類 246
18.2.1 創建一個PHP類 246
18.2.2 類的定義 247
18.2.3 易犯的錯誤——類與PHP
執行塊 248
18.3 類的使用 249
18.3.1 怎樣創建類的實例 249
18.3.2 訪問對象屬性 250
18.3.3 訪問對象方法 250
18.3.4 訪問常量、靜態方法和訪問
靜態屬性 250
18.3.5 在類體中使用關鍵字$this 250
18.3.6 使用可變變量訪問成員 251
18.4 屬性的初始化 252
18.4.1 內聯方式初始化屬性 253
18.4.2 實例化時初始化屬性 253
18.5 定義方法 253
18.5.1 方法參數的類型提示 254
18.5.2 構造方法和析構方法 255
18.5.3 易犯的錯誤 257
18.6 對象成員的迭代 258
18.7 PHP?5和PHP?4在使用對象上的
不同 258
第19章 建立更可靠的OOP程序——類和
成員的訪問控製 260
19.1 瞭解成員訪問控製 261
19.2 public成員(公共成員) 262
19.3 private成員(私有成員) 262
19.4 protected成員
(受保護的成員) 263
第20章 重復使用類——繼承和組閤 265
20.1 類的繼承 266
20.1.1 創建子類 266
20.1.2 使用基類的構造器方法 267
20.1.3 使用關鍵字parent訪問
基類 267
20.1.4 關於多重繼承的錯誤
認識 268
20.1.5 檢測繼承關係 269
20.1.6 創建子類時的注意事項 269
20.1.7 擴展內建PHP類 270
20.2 在類中使用final修飾符禁止
繼承 270
20.3 類的組閤 271
20.3.1 實現類的組閤 271
20.3.2 組閤的優點 272
20.3.3 瞭解is-a和has-a 272
20.3.4 關於聚閤和組閤 272
第21章 靜態成員、靜態類和枚舉 273
21.1 為什麼要定義靜態成員和
靜態類 274
21.2 創建靜態成員 274
21.2.1 訪問靜態成員 275
21.2.2 易犯的錯誤——使用靜態
成員時的注意事項 275
21.2.3 靜態成員的特殊用途 276
21.2.4 靜態成員和繼承 276
21.2.5 後期靜態綁定 277
21.3 靜態類 278
21.4 枚舉 279
21.4.1 創建枚舉 279
21.4.2 使用枚舉的優點 280
第22章 多態——重載和覆載 281
22.1 方法的重載 282
22.1.1 重載參數列錶的數量 282
22.1.2 重載參數列錶的數量和
類型 283
22.1.3 靜態方法重載 284
22.2 重寫方法 285
第23章 接口和抽象——錯誤最深重的
地方 288
23.1 創建和實現接口 289
23.1.1 接口的定義 289
23.1.2 接口的實現 289
23.1.3 常量的實現 290
23.1.4 在接口和實現接口的類中
使用默認參數值 290
23.1.5 接口的閤並 291
23.2 創建抽象類 291
23.3 接口和抽象類的區彆 292
23.3.1 用一句話來區分接口和
抽象類 293
23.3.2 唯一能使用抽象類的地方 293
第24章 類、接口、函數和常量的
組織——命名空間 296
24.1 為什麼要使用命名空間——預防
衝突 297
24.2 創建命名空間 297
24.2.1 定義命名空間 298
24.2.2 使用命名空間實現閤理的
分類管理 300
24.2.3 命名空間的命名 301
24.3 使用命名空間 301
24.3.1 引用命名空間 301
24.3.2 命名空間使用的優先策略 302
24.3.3 使用namespace關鍵字和
__NAMESPACE__常量 303
24.3.4 導入命名空間 303
24.3.5 名稱解析規則 304
第25章 密封類和動態類 306
25.1 動態屬性 307
25.1.1 使用魔術方法__get()和
__set() 307
25.1.2 使用魔術方法__isset()和
__unset() 307
25.2 動態方法 309
25.3 創建密封類 309
第26章 使用魔術方法 310
26.1 類的自動加載和重用 311
26.2 轉換為字符串 311
26.2.1 __set_state()魔術方法 312
26.2.2 __invoke()魔術方法 313
26.3 序列化和逆序列化 314
26.3.1 執行序列化和逆序列化 314
26.3.2 自定義序列化和逆序列化 314
26.4 對象的剋隆 316
26.4.1 淺錶剋隆 316
26.4.2 深度剋隆 316
26.4.3 使用魔術方法__clone() 317
第27章 反射 319
27.1 反射要實現什麼 320
27.2 反射API 320
27.3 用於實現反射的函數 327
第28章 PHP設計模式 330
28.1 單體模式 331
28.2 工廠模式 332
28.2.1 簡單工廠模式 333
28.2.2 工廠方法模式 334
28.2.3 抽象工廠模式 335
28.3 建造者模式 336
28.4 觀察者模式 337
28.5 裝飾模式 338
第5篇 PHP和MySQL數據庫應用集成篇
第29章 安裝、配置和使用MySQL數據庫
服務器 342
29.1 安裝和配置MySQL數據庫
服務器 343
29.2 使用MySQL數據庫服務器 344
29.2.1 連接MySQL服務器 344
29.2.2 修改密碼 345
29.2.3 用戶賬戶管理 345
29.2.4 數據類型 346
29.2.5 數據庫操作 348
29.2.6 MySQL數據備份與恢復 349
第30章 使用phpMyAdmin管理
MySQL 352
30.1 配置phpMyAdmin 353
30.2 創建數據庫 355
30.3 設計數據庫結構 355
30.4 錄入數據 356
第31章 使用PDO接口訪問數據庫 357
31.1 配置PHP使用PDO 358
31.2 數據庫連接和配置數據源 358
31.2.1 數據庫連接 358
31.2.2 數據庫連接驅動 359
31.3 基本數據庫查詢操作 360
31.3.1 查詢和顯示數據記錄 360
31.3.2 遍曆列齣數據錶的
內容 360
31.4 修改數據 361
31.4.1 插入數據記錄 361
31.4.2 更新數據記錄 362
31.4.3 刪除數據記錄 363
31.4.4 插入和顯示數據庫中的圖片
(處理二進製數據) 364
31.5 操作數據庫結構 366
31.6 在PHP中應用PDO的基本
步驟 366
31.6.1 創建連接 367
31.6.2 執行查詢或更新 370
31.6.3 處理結果 371
31.6.4 關閉連接 371
31.7 其他常用數據庫連接的連接
方式 372
31.7.1 連接到SQL Server和Sybase
數據庫 372
31.7.2 連接到Firebird和Interbase
數據庫 372
31.7.3 連接到IBM DB2數據庫 372
31.7.4 連接到Oracle數據庫 373
31.7.5 連接到ODBC或DB2
數據庫 373
31.7.6 連接到PostgreSQL
數據庫 373
31.7.7 連接到SQLite數據庫 374
31.8 通過ODBC連接MySQL
數據庫 374
第32章 數據庫設計和SQL語法 377
32.1 數據庫設計基本知識 378
32.1.1 關於數據庫 378
32.1.2 設計數據庫 379
32.2 SQL語法入門 381
32.2.1 語法基礎知識 382
32.2.2 定義記錄集的列 383
32.2.3 限製記錄集中的記錄 384
32.2.4 對記錄集中的記錄進行
排序 385
32.2.5 聯接錶 385
32.3 創建和使用SQL存儲過程 389
32.3.1 使用命令行創建存儲
過程 390
32.3.2 為存儲過程定義參數 391
32.3.3 調用存儲過程 391
32.3.4 為調用存儲過程定義參數 392
32.4 SQL注入缺陷和參數化
查詢 394
32.4.1 基本的SQL注入預防
措施 394
32.4.2 使用參數化查詢預防SQL
注入 395
32.4.3 關於魔術引號和magic_quotes_
gpc導緻的SQL注入 396
思考與練習 397
第33章 深入探究PDO 398
33.1 瞭解PDO編程模型 399
33.1.1 瞭解PDO類 399
33.1.2 瞭解PDOStatement類 399
33.1.3 瞭解PDOException類 400
33.2 使用預處理語句和參數化
查詢 400
33.2.1 使用預處理 401
33.2.2 指定參數和實現參數化
查詢 401
33.3 遊標和數據提取 403
33.3.1 遊標的類型 404
33.3.2 數據提取方法 404
33.3.3 數據提取方法和提取模式
的配閤 406
33.3.4 關於元數據 413
33.4 關於PDO連接屬性 414
33.4.1 字段名區分大小寫 414
33.4.2 瞭解PDO持久連接 415
33.5 錯誤和錯誤處理 415
第34章 結果集分頁實用模塊 417
34.1 結果集分頁的方式 418
34.2 結果集分頁的技術原理 418
34.3 結果集分頁的範例 419
34.4 使用LIMIT子句分頁 422
第35章 使用MySQL數據庫函數和
MySQLi擴展 426
35.1 配置MySQL數據庫函數 427
35.1.1 MySQL函數運行時配置 427
35.1.2 MySQL函數資源類型 427
35.1.3 預定義常量 428
35.2 基本數據庫查詢操作 428
35.2.1 查詢和顯示數據記錄 428
35.2.2 遍曆列齣數據庫內容 429
35.3 修改數據 430
35.3.1 插入數據記錄 430
35.3.2 更新數據記錄 431
35.3.3 刪除數據記錄 431
35.3.4 插入和顯示數據庫中的圖片
(二進製數據) 432
35.3.5 使用MySQL數據庫函數操控
數據庫的基本步驟 434
35.4 使用MySQLi擴展 437
35.4.1 MySQLi運行時配置 437
35.4.2 MySQLi基本的使用方法 438
35.4.3 使用MySQLi類 440
35.4.4 使用mysqli_stmt類 441
35.4.5 使用mysqli_result類 442
第6篇 PHP基礎架構、擴展和框架應用篇
第36章 PHP網絡應用程序基礎
架構 444
36.1 PHP網絡應用程序的三層
架構模型 445
36.2 從C/S架構到B/S架構 446
36.2.1 從三層架構到N層架構 448
36.2.2 PHP網頁在三層架構中的
地位 448
第37章 PHP擴展——PECL和
PEAR 449
37.1 使用PHP擴展 450
37.2 安裝和使用PEAR擴展 451
37.2.1 安裝PEAR環境 451
37.2.2 管理PEAR擴展 452
37.2.3 使用擴展包 452
第38章 使用PHP發送和接收電子
郵件 453
38.1 安裝和使用SMTP服務 454
38.1.1 安裝SMTP服務 454
38.1.2 配置SMTP服務 455
38.1.3 配置Outlook使用本地SMTP
服務發送郵件 456
38.1.4 區分POP3和SMTP服務 457
38.2 創建發送郵件的PHP應用
程序 458
38.2.1 瞭解mail()函數 458
38.2.2 創建簡單的郵件發送程序 459
38.2.3 SMTP服務和mail()函數的
工作原理 460
38.3 創建增強的郵件發送程序 460
38.3.1 安裝和配置 461
38.3.2 使用遠程SMTP服務 461
38.3.3 發送帶附件的電子郵件 462
38.3.4 發送多媒體郵件 463
38.3.5 群發郵件 465
38.4 使用POP3方式收信 466
第39章 使用PHP操作文件係統 468
39.1 瞭解目錄和文件的路徑 469
39.2 獲取目錄和文件的信息 470
39.2.1 獲取磁盤的總大小和可用
空間 470
39.2.2 獲取目錄和文件的屬性
信息 470
39.2.3 遍曆文件夾下的目錄和
文件 471
39.3 處理目錄 474
39.3.1 目錄的創建、刪除、重命名和
移動 474
39.3.2 刪除目錄樹 475
39.3.3 處理當前網頁所在目錄 476
39.4 處理文件 476
39.4.1 文件的創建、刪除、復製、
重命名和移動 476
39.4.2 嚮文件中添加數據 477
39.4.3 讀取文件內容 479
39.4.4 文件下載 480
第40章 使用W3C DOM處理XML
文檔 482
40.1 一切皆是節點——學習DOM的
首要認識 483
40.1.1 DOM API的節點類型 483
40.1.2 節點的層次關係 483
40.1.3 DOM基於節點的瀏覽 484
40.2 使用PHP DOM處理XML
文檔 485
40.2.1 PHP DOM API 486
40.2.2 使用字符串創建一個新的
DOM文檔對象 494
40.2.3 使用文件創建一個新的DOM
文檔對象 495
40.2.4 使用版本號和編碼創建一個空
的DOM文檔對象 495
40.2.5 保存和寫齣一個DOM文檔
對象 495
40.2.6 遍曆節點樹 496
40.2.7 使用XPath從XML文檔中
提取數據 499
40.3 修改XML文檔 499
40.3.1 添加新節點 499
40.3.2 為元素節點添加
新屬性 500
40.3.3 通過剋隆的方法創
建節點 501
40.3.4 修改XML文檔中的節點、
內容和值 502
40.3.5 刪除XML文檔中的節點、
內容和值 503
第41章 使用SAX處理XML文檔 504
41.1 什麼是SAX 505
41.2 使用SAX解析XML的通用
步驟 507
41.2.1 齣錯代碼和常量 511
41.2.2 SAX解析函數詳解 512
第42章 使用Zend框架 518
42.1 安裝和配置Zend框架 519
42.2 使用Zend框架 519
第7篇 PHP程序調試、優化和部署篇
第43章 處理程序異常——建立可靠的
應用程序 524
43.1 錯誤和異常情況 525
43.2 異常情況處理 526
43.2.1 使用try…catch語句 526
43.2.2 使用throw語句 527
43.2.3 何時使用異常捕捉 528
43.2.4 自定義捕捉異常的方法 528
43.2.5 自定義捕捉錯誤的方法 529
43.2.6 將齣錯信息寫入日誌 530
43.2.7 錯誤控製運算符 531
43.3 使用Exception處理異常錯誤
信息 531
43.4 條件catch語句 532
第44章 使用Zend Debugger調試PHP
程序代碼——原理與範例 533
44.1 調試PHP的方法 534
44.1.1 使用齣錯信息 534
44.1.2 服務器日誌 535
44.1.3 斷點調試 535
44.2 配置PHP調試環境 535
44.2.1 安裝和配置Zend Debugger 536
44.2.2 安裝和配置Zend Studio 537
44.3 使用Zend Studio進行調試 538
44.3.1 調試操作 539
44.3.2 調試工具欄 540
44.3.3 查看變量 541
44.3.4 設置斷點 541
44.3.5 監控變量 542
44.3.6 調用堆棧窗口 542
44.4 使用script調試工具範例
實戰 543
44.4.1 定義一個用於調試的PHP
範例網頁 543
44.4.2 調試實戰 544
第45章 PHP事務和關鍵應用程序
開發 548
45.1 理解事務 549
45.1.1 事務的工作過程 549
45.1.2 事務的共同特點 549
45.2 在PHP應用程序中使用事務 550
45.2.1 在PHP網頁中使用PDO自身
事務處理係統 551
45.2.2 使用數據庫係統完成事務 552
第46章 PHP網絡應用程序的安全 554
46.1 身份驗證和授權 555
46.1.1 瞭解Apache提供的身份驗證
功能 555
46.1.2 關於匿名訪問站點 555
46.1.3 創建基本身份驗證站點 555
46.1.4 摘要式身份驗證 559
46.1.5 分級訪問控製 562
46.1.6 使用錶單的身份驗證和基於
角色的授權係統 562
46.2 傳輸過程中的加密 562
46.2.1 加密的工作原理 563
46.2.2 安全證書的工作原理 564
46.2.3 使用隱私和安全證書 564
46.3 配置Apache支持SSL 564
46.3.1 安裝OpenSSL 565
46.3.2 創建服務器證書和私鑰 565
46.3.3 配置Apache和mod_ssl 567
46.3.4 信任自簽名證書 569
46.3.5 創建CA 571
46.3.6 使用CA簽名和頒發
證書 572
46.3.7 在客戶端安裝根證書 573
46.4 使用瀏覽器證書 574
46.4.1 使用瀏覽器證書的注意
事項 575
46.4.2 創建瀏覽器證書 575
46.4.3 安裝瀏覽器證書 575
46.4.4 啓用瀏覽器證書 576
46.4.5 使用客戶證書映射 580
第47章 PHP網頁的國際化、區域化和
多國語言包 582
47.1 瞭解網頁字符編碼 583
47.1.1 計算機文字字符編碼
簡介 583
47.1.2 文檔字符集和選擇字符
編碼 585
47.1.3 在HTML文檔中使用字符
引用 585
47.2 字符編碼和PHP網頁 586
47.2.1 指定網頁字符編碼 586
47.2.2 字符編碼的優先級 587
47.2.3 亂碼産生的根源和解決
方案 587
47.2.4 為PHP網頁實際編碼 588
47.2.5 創建多語言網站 588
47.3 區域化設置和PHP網頁 590
47.3.1 國際化和區域化設置 590
47.3.2 區域化設置和字符集的
匹配 591
47.3.3 使用setlocale()函數設置
區域化 593
47.4 創建PHP網頁實現國際化和
區域化 594
47.4.1 瞭解國際化和區域化的
相關函數 594
47.4.2 製作資源包 595
47.4.3 放置資源包 598
思考與練習 598
附錄A 保留的PHP關鍵字 599
附錄B 常用字符集速查錶 600
附錄C PHP支持的時區字符串列錶 601
附錄D php.ini核心配置選項說明 607
附錄E 區域標識符對照錶 612
附錄F Linux+Apache+MySQL+ PHP
(LAMP)安裝和配置 614
F.1 安裝和配置Apache 614
F.2 安裝和配置PHP 615
F.3 安裝和配置MySQL 617
附錄G 關於PHP?6的介紹 618
附錄H 參考文獻以及資料來源 619
參考網址 619
參考圖書 620
參考規範及標準 621
· · · · · · (
收起)