第1 章 PHP 概述 1
1.1 曆史 1
1.1.1 PHP 4 2
1.1.2 PHP 5 3
1.1.3 PHP 5.3 4
1.1.4 PHP 6 4
1.2 一般語言特性 4
1.2.1 實用性 4
1.2.2 強大功能 5
1.2.3 可選擇性 5
1.2.4 成本 6
1.3 小結 6
第2 章 環境配置 7
2.1 安裝的前提條件 7
2.1.1 下載Apache 8
2.1.2 下載PHP 8
2.1.3 下載文檔 9
2.2 在Linux 上安裝Apache 和PHP 9
2.3 在Windows 上安裝Apache 和PHP 11
2.4 在Windows 上安裝IIS 和PHP 12
2.5 測試安裝 13
2.6 配置PHP 14
2.6.1 在Linux 上構建時配置PHP 14
2.6.2 定製Windows 構建 15
2.7 運行時配置 15
2.7.1 管理PHP 的配置指令 15
2.7.2 PHP 的配置指令 17
2.8 選擇代碼編輯器 28
2.8.1 Adobe Dreamweaver CS5 28
2.8.2 Notepad++ 28
2.8.3 PDT 28
2.8.4 Zend Studio 29
2.9 選擇Web 托管服務提供商 29
2.10 小結 30
第3 章 PHP 基礎 31
3.1 在Web 頁麵中嵌入PHP 代碼 31
3.1.1 默認語法 31
3.1.2 短標簽 32
3.1.3 腳本 33
3.1.4 ASP 風格 33
3.1.5 嵌入多個代碼塊 33
3.2 為代碼添加注釋 33
3.2.1 單行C++語法 33
3.2.2 shell 語法 34
3.2.3 多行C 語法 34
3.3 嚮瀏覽器輸齣數據 35
3.3.1 print()語句 35
3.3.2 echo()語句 35
3.3.3 printf()語句 36
3.3.4 sprintf() 37
3.4 PHP 支持的數據類型 37
3.4.1 標量數據類型 38
3.4.2 復閤數據類型 39
3.4.3 使用類型強製轉換實現數據類型間的轉換 40
3.4.4 類型自動轉換 41
3.4.5 與類型有關的函數 41
3.4.6 類型標識符函數 42
3.5 標識符 42
3.6 變量 43
3.6.1 變量聲明 43
3.6.2 變量作用域 44
3.6.3 PHP 的超級全局變量 47
3.6.4 變量的變量 50
3.7 常量 51
3.8 錶達式 51
3.8.1 操作數 52
3.8.2 操作符 52
3.9 字符串插入 56
3.9.1 雙引號 57
3.9.2 轉義序列 57
3.9.3 單引號 58
3.9.4 大括號 58
3.9.5 heredoc 58
3.9.6 Nowdoc 59
3.10 控製結構 59
3.10.1 條件語句 59
3.10.2 循環語句 61
3.10.3 文件包含語句 65
3.11 小結 67
第4 章 函數 68
4.1 調用函數 68
4.2 創建函數 69
4.2.1 按值傳遞參數 69
4.2.2 按引用傳遞參數 70
4.2.3 默認參數值 71
4.2.4 使用類型提示 72
4.2.5 從函數返迴值 72
4.2.6 遞歸函數 73
4.3 函數庫 75
4.4 小結 76
第5 章 數組 77
5.1 什麼是數組 77
5.2 創建數組 78
5.2.1 用array()創建數組 79
5.2.2 用list()提取數組 79
5.2.3 用預定義的值範圍填充數組 80
5.2.4 測試數組 81
5.3 輸齣數組 81
5.4 添加和刪除數組元素 82
5.4.1 在數組頭添加元素 83
5.4.2 在數組尾添加元素 83
5.4.3 從數組頭刪除元素 83
5.4.4 從數組尾刪除元素 83
5.5 定位數組元素 84
5.5.1 搜索數組 84
5.5.2 獲取數組鍵 85
5.5.3 獲取數組值 85
5.6 遍曆數組 85
5.6.1 獲取當前數組鍵 86
5.6.2 獲取當前數組值 86
5.6.3 獲取當前數組鍵和值 86
5.6.4 移動數組指針 87
5.6.5 嚮函數傳遞數組值 87
5.7 確定數組的大小和唯一性 88
5.7.1 確定數組的大小 89
5.7.2 統計數組元素齣現的頻度 89
5.7.3 確定唯一的數組元素 89
5.8 數組排序 90
5.8.1 逆置數組元素順序 90
5.8.2 置換數組鍵和值 90
5.8.3 數組排序 91
5.9 閤並、拆分、接閤和分解數組 95
5.9.1 閤並數組 95
5.9.2 遞歸追加數組 95
5.9.3 閤並兩個數組 96
5.9.4 拆分數組 96
5.9.5 接閤數組 97
5.9.6 求數組的交集 98
5.9.7 求關聯數組的交集 98
5.9.8 求數組的差集 99
5.9.9 求關聯數組的差集 99
5.10 其他有用的數組函數 100
5.10.1 返迴一組隨機的鍵 100
5.10.2 隨機洗牌數組元素 100
5.11 小結 102
第6 章 麵嚮對象的PHP 103
6.1 OOP 的好處 103
6.1.1 封裝 103
6.1.2 繼承 104
6.1.3 多態 104
6.2 關鍵的OOP 概念 104
6.2.1 類 104
6.2.2 對象 105
6.2.3 屬性 106
6.2.4 常量 110
6.2.5 方法 111
6.3 構造函數和析構函數 114
6.3.1 構造函數 114
6.3.2 析構函數 116
6.4 靜態類成員 117
6.5 instanceof 關鍵字 118
6.6 輔助函數 118
6.7 自動加載對象 120
6.8 小結 120
第7 章 高級OOP 特性 121
7.1 PHP 不支持的高級OOP 特性 121
7.2 對象剋隆 122
7.2.1 剋隆示例 122
7.2.2 __clone()方法 123
7.3 繼承 124
7.3.1 類繼承 124
7.3.2 繼承和構造函數 126
7.3.3 繼承與延遲靜態綁定 127
7.4 接口 128
7.4.1 實現一個接口 129
7.4.2 實現多個接口 130
7.5 抽象類 131
7.6 命名空間介紹 131
7.7 小結 133
第8 章 錯誤和異常處理 134
8.1 配置指令 134
8.2 錯誤日誌 137
8.3 異常處理 139
8.3.1 為什麼異常處理很方便 139
8.3.2 PHP 的異常處理實現 140
8.3.3 SPL 異常 144
8.4 小結 145
第9 章 字符串和正則錶達式 146
9.1 正則錶達式 146
9.1.1 正則錶達式語法(POSIX) 147
9.1.2 PHP 的正則錶達式函數(POSIX擴展) 148
9.1.3 正則錶達式語法(Perl 風格) 151
9.2 其他字符串函數 157
9.2.1 確定字符串長度 157
9.2.2 比較兩個字符串 158
9.2.3 處理字符串大小寫 159
9.2.4 字符串與HTML 相互轉換 161
9.3 正則錶達式函數的替代函數 165
9.3.1 填充和剔除字符串 170
9.3.2 統計字符和單詞個數 171
9.4 使用PEAR:Validate_US 173
9.4.1 安裝Validate_US 174
9.4.2 使用Validate_US 174
9.5 小結 175
第10 章 處理文件和操作係統 176
10.1 瞭 解文件和目錄 176
10.1.1 解析目錄路徑 176
10.1.2 計算文件、目錄和磁盤大小 178
10.1.3 確定訪問和修改時間 180
10.2 文件處理 182
10.2.1 資源的概念 182
10.2.2 識彆換行符 182
10.2.3 識彆文件末尾字符 182
10.2.4 打開和關閉文件 182
10.2.5 讀取文件 184
10.2.6 將字符串寫入文件 189
10.2.7 移動文件指針 189
10.2.8 讀取目錄內容 190
10.3 執行shell 命令 191
10.4 係統級程序執行 192
10.4.1 清理輸入 193
10.4.2 PHP 的程序執行函數 194
10.5 小結 196
第11 章 PEAR 197
11.1 PEAR 的強大功能:數值格式轉換 197
11.2 安裝和更新PEAR 198
11.2.1 安裝PEAR 198
11.2.2 PEAR 和托管公司 199
11.2.3 更新PEAR 200
11.3 使用PEAR 包管理器 200
11.3.1 查看安裝的PEAR 包 200
11.3.2 瞭解已安裝PEAR 包的更多信息 200
11.3.3 安裝PEAR 包 201
11.3.4 將包包含到腳本中 202
11.3.5 升級PEAR 包 203
11.3.6 卸載包 203
11.3.7 降級PEAR 包 204
11.4 Pyrus 介紹 204
11.5 小結 204
第12 章 日期和時間 205
12.1 UNIX 時間戳 205
12.2 PHP 的日期和時間庫 206
12.2.1 驗證日期 206
12.2.2 格式化日期和時間 206
12.2.3 將時間戳轉換為用戶友好的值 209
12.2.4 處理時間戳 210
12.3 日期函數 211
12.3.1 顯示本地化的日期和時間 211
12.3.2 顯示網頁的最新修改日期 214
12.3.3 確定當前月份中的天數 214
12.3.4 確定任意給定月份的天數 215
12.3.5 計算當前日期後X 天的日期 215
12.4 為PHP 5.1+用戶提供的日期時間改進 215
12.4.1 DateTime 構造函數簡介 215
12.4.2 格式化日期 216
12.4.3 實例化後設置日期 216
12.4.4 實例化後設置時間 217
12.4.5 修改日期和時間 217
12.4.6 計算兩個日期之差 217
12.5 小結 218
第13 章 處理HTML 錶單 219
13.1 PHP 和Web 錶單 219
13.2 驗證錶單數據 221
13.2.1 文件刪除 221
13.2.2 跨站點腳本攻擊 221
13.2.3 清理用戶輸入 223
13.2.4 利用Filter 擴展驗證和清理數據 225
13.2.5 處理多值錶單組件 226
13.3 充分利用PEAR:HTML_QuickForm2 227
13.3.1 安裝HTML_QuickForm2 227
13.3.2 創建和驗證簡單的錶單 228
13.4 小結 230
第14 章 身份驗證 231
14.1 HTTP 驗證概念 231
14.2 用PHP 驗證用戶 233
14.2.1 PHP 驗證變量 233
14.2.2 有用的函數 233
14.3 PHP 驗證方法 234
14.3.1 硬編碼的身份驗證 234
14.3.2 基於文件的身份驗證 235
14.3.3 基於數據庫的身份驗證 236
14.3.4 利用PEAR:Auth_HTTP 237
14.4 用戶登錄管理 239
14.4.1 用CrackLib 庫測試密碼易猜性 239
14.4.2 一次性URL 和密碼恢復 241
14.5 小結 243
第15 章 處理文件上傳 244
15.1 通過HTTP 協議上傳文件 244
15.2 通過PHP 上傳文件 245
15.2.1 PHP 的文件上傳/資源指令 245
15.2.2 $_FILES 數組 246
15.2.3 PHP 的文件上傳函數 247
15.2.4 上傳錯誤消息 248
15.2.5 一個簡單的示例 248
15.3 利用PEAR:HTTP_Upload 249
15.3.1 安裝HTTP_Upload 249
15.3.2 上傳文件 250
15.3.3 瞭解關於已上傳文件的更多信息 250
15.3.4 上傳多個文件 251
15.4 小結 252
第16 章 網絡 253
16.1 DNS、服務器和服務 253
16.1.1 DNS 253
16.1.2 服務 257
16.1.3 建立套接字連接 257
16.2 郵件 259
16.2.1 配置指令 259
16.2.2 使用PHP 腳本發送電子郵件 260
16.3 常見網絡任務 264
16.3.1 連接服務器 264
16.3.2 創建端口掃描器 265
16.3.3 創建子網轉換器 265
16.3.4 測試用戶帶寬 267
16.4 小結 267
第17 章 PHP 和LDAP 268
17.1 在PHP 中使用LDAP 269
17.1.1 為PHP 配置LDAP 269
17.1.2 連接到LDAP 服務器 269
17.1.3 獲取LDAP 數據 271
17.1.4 統計所獲取的項 274
17.1.5 LDAP 記錄排序 274
17.1.6 插入LDAP 數據 275
17.1.7 更新LDAP 數據 276
17.1.8 刪除LDAP 數據 276
17.1.9 處理區分名 277
17.1.10 錯誤處理 278
17.2 小結 279
第18 章 會話處理程序 280
18.1 什麼是會話處理 280
18.2 配置指令 281
18.2.1 管理會話存儲介質 281
18.2.2 設置會話文件路徑 281
18.2.3 自動啓用會話 282
18.2.4 設置會話名稱 282
18.2.5 選擇cookie 或URL 重寫 282
18.2.6 自動URL 重寫 282
18.2.7 設置會話cookie 的生存期 283
18.2.8 設置會話cookie 的有效URL 路徑 283
18.2.9 為啓用會話的頁麵設置緩存方嚮 283
18.3 處理會話 284
18.3.1 開始會話 284
18.3.2 銷毀會話 285
18.3.3 設置和獲取會話ID 285
18.3.4 創建和刪除會話變量 285
18.3.5 編碼和解碼會話數據 286
18.4 實際的會話處理示例 288
18.4.1 以返迴用戶的身份自動登錄 288
18.4.2 生成最近瀏覽文檔的索引 290
18.5 創建定製會話處理程序 291
18.5.1 將定製會話函數加入到PHP 邏輯 292
18.5.2 使用基於MySQL 的定製會話處理程序 292
18.6 小結 295
第19 章 用Smarty 模闆化 296
19.1 什麼是模闆化引擎 296
19.2 Smarty 介紹 298
19.3 安裝Smarty 298
19.4 使用Smarty 299
19.5 Smarty 的錶現邏輯 301
19.5.1 注釋 301
19.5.2 變量修飾符 301
19.5.3 控製結構 303
19.5.4 語句 307
19.6 創建配置文件 309
19.6.1 config_load 309
19.6.2 引用配置變量 310
19.7 結閤Smarty 使用CSS 310
19.8 緩存 311
19.8.1 處理緩存生命期 311
19.8.2 通過is_cached()消除處理開銷 312
19.8.3 為每個模闆創建多個緩存 312
19.8.4 關於緩存的結束語 313
19.9 小結 313
第20 章 Web 服務 314
20.1 為什麼使用Web 服務 314
20.2 RSS 315
20.3 SimplePie 介紹 318
20.3.1 安裝SimplePie 318
20.3.2 用SimplePie 解析提要 319
20.3.3 解析多個提要 320
20.4 SimpleXML 321
20.4.1 加載XML 321
20.4.2 解析XML 323
20.5 小結 325
第21 章 保護網站安全 326
21.1 安全地配置PHP 326
21.2 隱藏配置細節 328
21.2.1 隱藏Apache 328
21.2.2 隱藏PHP 329
21.3 隱藏敏感數據 330
21.3.1 隱藏文檔根目錄 330
21.3.2 拒絕訪問某些文件擴展名 330
21.4 數據加密 331
21.4.1 PHP 的加密函數 331
21.4.2 MCrypt 包 332
21.5 小結 333
第22 章 用jQuery 和PHP 創建AJAX增強特性 334
22.1 AJAX 介紹 334
22.2 jQuery 介紹 335
22.2.1 安裝jQuery 336
22.2.2 一個簡單示例 336
22.2.3 響應事件 336
22.2.4 jQuery 和DOM 338
22.3 創建一個用戶名存在性驗證程序 339
22.4 小結 342
第23 章 構建麵嚮全世界的網站 343
23.1 用gettext 翻譯網站 343
23.1.1 第一步:更新網站腳本 344
23.1.2 第二步:創建本地化庫 345
23.1.3 第三步:創建翻譯文件 345
23.1.4 第四步:翻譯文本 346
23.1.5 第五步:生成二進製文件 346
23.1.6 第六步:在腳本中設置所需語言 346
23.2 本地化日期、數字和時間 347
23.3 小結 348
第24 章 Zend 框架介紹 349
24.1 MVC 介紹 349
24.2 PHP 的框架解決方案 351
24.2.1 CakePHP 框架 351
24.2.2 Solar 框架 351
24.2.3 symfony 框架 352
24.2.4 Zend 框架 352
24.3 Zend 框架介紹 352
24.3.1 安裝Zend 框架 353
24.3.2 創建第一個Zend 框架驅動的網站 353
24.4 小結 363
第25 章 MySQL 介紹 364
25.1 是什麼讓MySQL 如此流行 364
25.1.1 靈活性 364
25.1.2 強大功能 365
25.1.3 靈活的許可選擇 366
25.1.4 超級活躍的用戶群體 367
25.2 MySQL 的演進 367
25.2.1 MySQL 4 367
25.2.2 MySQL 5 368
25.2.3 MySQL 5.1 368
25.2.4 MySQL 5.4 和5.5 369
25.3 著名的MySQL 用戶 369
25.3.1 craigslist 369
25.3.2 維基百科 369
25.3.3 其他重要用戶 369
25.4 小結 370
第26 章 安裝和配置MySQL 371
26.1 下載MySQL 371
26.2 安裝MySQL 372
26.2.1 在Linux 上安裝MySQL 372
26.2.2 在Windows 上安裝並配置MySQL 374
26.3 設置MySQL 管理員密碼 376
26.4 啓動和停止MySQL 376
26.5 配置和優化MySQL 377
26.5.1 mysqld_safe 包裝程序 378
26.5.2 MySQL 的參數配置和優化 378
26.5.3 my.cnf 文件 381
26.6 配置PHP 以便與MySQL 協作 382
26.6.1 在Linux 上重新配置PHP 382
26.6.2 在Windows 上重新配置PHP 383
26.7 小結 383
第27 章 MySQL 客戶端 384
27.1 命令行客戶端介紹 384
27.1.1 mysql 客戶端 384
27.1.2 mysqladmin 客戶端 391
27.1.3 其他有用的客戶端 392
27.1.4 客戶端選項 395
27.2 MySQL 的GUI 客戶程序 397
27.3 phpMyAdmin 398
27.4 小結 399
第28 章 MySQL 存儲引擎和數據類型 400
28.1 存儲引擎 400
28.1.1 MyISAM 401
28.1.2 IBMDB2I 402
28.1.3 InnoDB 403
28.1.4 MEMORY 403
28.1.5 MERGE 404
28.1.6 FEDERATED 404
28.1.7 ARCHIVE 405
28.1.8 CSV 406
28.1.9 EXAMPLE 406
28.1.10 BLACKHOLE 406
28.1.11 存儲引擎的常見問題 406
28.2 數據類型和屬性 407
28.2.1 數據類型 407
28.2.2 數據類型屬性 411
28.3 處理數據庫和錶 414
28.3.1 處理數據庫 414
28.3.2 處理錶 415
28.3.3 更改錶結構 417
28.3.4 INFORMATION_SCHEMA 417
28.4 小結 420
第29 章 保護MySQL 的安全 421
29.1 首先應當做什麼 421
29.2 保護mysqld 守護進程 422
29.3 MySQL 訪問權限係統 423
29.3.1 權限係統的工作方式 423
29.3.2 訪問信息存儲在哪裏 424
29.4 用戶和權限管理 431
29.4.1 創建用戶 432
29.4.2 刪除用戶 432
29.4.3 重命名用戶 432
29.4.4 GRANT 和REVOKE 命令 432
29.4.5 查看權限 437
29.5 限製用戶資源 437
29.6 保護MySQL 連接 437
29.6.1 授權選項 438
29.6.2 SSL 選項 439
29.6.3 啓動啓用SSL 的MySQL服務器 440
29.6.4 使用啓用SSL 的客戶端進行連接 440
29.6.5 在my.cnf 文件中存儲SSL 選項 440
29.7 小結 441
第30 章 結閤使用PHP 與MySQL 442
30.1 進行安裝的預備工作 443
30.1.1 在Linux/UNIX 中啓用mysqli 擴展 443
30.1.2 在Windows 中啓用mysqli擴展 443
30.1.3 使用MySQL 本地驅動程序 443
30.1.4 管理用戶權限 443
30.1.5 處理示例數據 444
30.2 使用mysqli 擴展 444
30.2.1 建立和斷開連接 444
30.2.2 處理連接錯誤 445
30.2.3 獲得錯誤信息 445
30.2.4 在單獨的文件中存儲連接信息 446
30.2.5 保護連接信息 447
30.3 與數據庫交互 447
30.3.1 嚮數據庫發送查詢 447
30.3.2 解析查詢結果 449
30.3.3 確定所選擇的行和受影響的行 450
30.3.4 處理準備語句 451
30.4 執行數據庫事務 455
30.4.1 啓用自動提交模式 455
30.4.2 提交事務 455
30.4.3 迴滾事務 456
30.5 小結 456
第31 章 PDO 介紹 457
31.1 為什麼還要另一種數據庫抽象層 458
31.2 使用PDO 458
31.2.1 安裝PDO 459
31.2.2 PDO 的數據庫選項 459
31.2.3 連接到數據庫服務器並選擇數據庫 460
31.2.4 錯誤處理 461
31.2.5 獲取和設置屬性 463
31.2.6 查詢執行 463
31.2.7 準備語句介紹 464
31.2.8 獲取數據 467
31.2.9 設置綁定列 469
31.2.10 處理事務 470
31.3 小結 470
第32 章 存儲例程 471
32.1 應當使用存儲例程嗎 471
32.1.1 存儲例程的優點 471
32.1.2 存儲例程的缺點 472
32.2 MySQL 如何實現存儲例程 472
32.2.1 創建存儲例程 472
32.2.2 聲明和設置變量 474
32.2.3 執行存儲例程 475
32.2.4 創建和使用多語句存儲例程 476
32.2.5 從另一個例程中調用例程 481
32.2.6 修改存儲例程 482
32.2.7 刪除存儲例程 482
32.2.8 查看例程狀態 482
32.2.9 查看例程的創建語法 483
32.2.10 條件處理 484
32.3 將例程集成到Web 應用程序 484
32.3.1 創建員工奬金界麵 484
32.3.2 獲取多條記錄 485
32.4 小結 485
第33 章 MySQL 觸發器 486
33.1 介紹觸發器 486
33.1.1 為什麼使用觸發器 486
33.1.2 在事件前采取行動 487
33.1.3 在事件後采取行動 487
33.1.4 前觸發器和後觸發器 488
33.2 MySQL 對觸發器的支持 488
33.2.1 創建觸發器 488
33.2.2 查看現有的觸發器 490
33.2.3 修改觸發器 491
33.2.4 刪除觸發器 491
33.3 將觸發器集成到Web 應用程序 491
33.4 小結 492
第34 章 視圖 493
34.1 視圖介紹 493
34.2 MySQL 對視圖的支持 494
34.2.1 創建和執行視圖 494
34.2.2 查看視圖信息 498
34.2.3 修改視圖 499
34.2.4 刪除視圖 499
34.2.5 更新視圖 500
34.3 將視圖結閤到Web 應用程序中 500
34.4 小結 501
第35 章 實用數據庫查詢 502
35.1 示例數據 502
35.2 用PEAR 創建錶格輸齣 503
35.2.1 安裝HTML_Table 503
35.2.2 創建簡單錶 503
35.2.3 創建更可讀的行輸齣 505
35.2.4 根據數據庫數據創建錶 505
35.3 排序輸齣 506
35.4 創建分頁輸齣 507
35.5 列齣頁碼 509
35.6 用子查詢查詢多個錶 510
35.6.1 用子查詢完成比較 511
35.6.2 用子查詢確定存在性 511
35.6.3 用子查詢維護數據庫 512
35.6.4 在PHP 中使用子查詢 512
35.7 用遊標迭代結果集 513
35.7.1 遊標基礎 513
35.7.2 創建遊標 513
35.7.3 打開遊標 514
35.7.4 使用遊標 514
35.7.5 關閉遊標 515
35.7.6 在PHP 中使用遊標 515
35.8 小結 515
第36 章 索引和搜索 516
36.1 數據庫索引 516
36.1.1 主鍵索引 516
36.1.2 唯一索引 517
36.1.3 常規索引 518
36.1.4 全文索引 519
36.1.5 索引最佳實踐 522
36.2 基於錶單的搜索 522
36.2.1 執行簡單搜索 523
36.2.2 擴展搜索功能 524
36.2.3 完成全文搜索 525
36.3 小結 526
第37 章 事務 527
37.1 什麼是事務 527
37.2 MySQL 的事務功能 528
37.2.1 係統需求 528
37.2.2 錶創建 528
37.3 示例項目 528
37.3.1 創建錶並添加示例數據 529
37.3.2 執行示例事務 529
37.3.3 用法提示 531
37.4 用PHP 構建事務應用程序 531
37.5 小結 533
第38 章 導入和導齣數據 534
38.1 示例錶 534
38.2 使用數據定界 534
38.3 導入數據 535
38.3.1 利用LOAD DATA INFILE導入數據 535
38.3.2 用mysqlimport 導入數據 538
38.3.3 用PHP 加載錶數據 540
38.4 導齣數據 541
38.5 小結 543
· · · · · · (
收起)