目 錄
譯者序
作者介紹
前言
第1章 什么是PHP 1
1.1 PHP簡介 1
1.1.1 PHP的發展歷程 2
1.1.2 PHP的現狀 3
1.2 本書的風格和編排 4
1.3 小結 4
1.4 一些有用的網站 4
第2章 安裝和配置PHP 6
2.1 安裝 6
2.1.1 平臺和Web服務器 6
2.1.2 PHP的模塊 6
2.1.3 CGI解釋器和Apache模塊 7
2.1.4 獲得PHP 8
2.1.5 在UNIX下建立和安裝PHP 10
2.1.6 測試和基準測試 15
2.1.7 在Windows下安裝PHP 16
2.1.8 在microsoft pws下安裝php 19
2.1.9 在omnihttpd下安裝php 20
2.1.10 在microsoft Ⅱs 5.0下安裝php 22
2.2 配置 23
2.2.1 在編譯時進行配置 24
2.2.2 用Apache命令進行配置 26
2.2.3 利用php.ini文件進行配置 26
2.3 MySQL 35
2.3.1 安裝MySQL 36
2.3.2 配置系統的訪問權限 39
2.4 Boutell的GD庫:支持創建GIF圖片 40
2.5 Expat:XML分析支持 41
2.6 小結 41
2.7 建議讀物 41
第3章 在Web環境下編程 42
3.1 為什么用PHP 42
3.2 Web方面的技術 43
3.2.1 靜態發布 43
3.2.2 動態站點 43
3.3 編寫PHP頁面 47
3.3.1 PHP和客戶端代碼 49
3.3.2 PHP變量 49
3.3.3 與用戶交互 50
3.3.4 處理表單數據 52
3.4 一個工作申請表 53
3.4.1 URL編碼的介紹 54
3.4.2 注釋代碼 58
3.4.3 字符轉義 59
3.5 小結 61
第4章 變量、常量和數據類型 63
4.1 數據類型 63
4.2 數據的值 63
4.3 常量 63
4.3.1 定義常量 64
4.3.2 內置常量 64
4.4 變量的聲明和初始化 65
4.5 類型轉變和類型強制 65
4.5.1 字符轉變和類型轉變 66
4.5.2 類型強制 66
4.6 變量的變量 66
4.7 關于變量的一些有用函數 67
4.8 建立一個在線工作申請表 69
4.9 小結 72
第5章 操作符 73
5.1 算術運算符 73
5.2 賦值符號 73
5.3 比較符號 73
5.4 邏輯操作符 75
5.5 字符串連接符號 76
5.6 三元操作符 77
5.7 位運算符 77
5.8 變量賦值的簡潔方式 78
5.9 其他類型操作符 79
5.9.1 變量操作符 79
5.9.2 對象操作符 79
5.9.3 錯誤抑制符號 79
5.10 操作符的優先級和組合 80
5.11 建立一個在線的工作申請表 81
5.12 小結 83
第6章 語句 84
6.1 條件語句 84
6.1.1 if語句 84
6.1.2 分支條件語句 85
6.1.3 switch語句 86
6.2 循環 88
6.2.1 while循環 88
6.2.2 do...while循環 89
6.2.3 for循環 90
6.2.4 foreach語句 91
6.3 在PHP腳本中包含文件 91
6.4 從PHP腳本中退出 92
6.5 建立一個在線工作申請表 92
6.6 小結 96
第7章 函數 97
7.1 函數如何工作 97
7.2 變量的作用范圍和生命周期 101
7.3 函數的嵌套和遞歸 102
7.4 把函數賦給一個變量 104
7.5 建立一個在線工作申請表 104
7.6 小結 109
第8章 數組 110
8.1 簡單數組 110
8.1.1 初始化數組 110
8.1.2 數組的遍歷 111
8.2 字符串索引的數組 115
8.3 多維數組 118
8.4 排序函數 119
8.5 在表單元素中使用數組 122
8.6 小結 123
第9章 面向對象的編程 125
9.1 什么是面向對象的編程 125
9.1.1 分類 126
9.1.2 實例化 130
9.2 繼承 132
9.3 小結 135
第10章 字符串處理和正規表達式 136
10.1 基本的字符串函數 136
10.2 正規表達式 139
10.2.1 基本模式匹配 140
10.2.2 正規表達式函數 144
10.3 建立在線工作申請表 147
10.4 小結 154
第11章 文件處理與數據存儲 155
11.1 文件處理 155
11.1.1 打開文件 155
11.1.2 關閉文件 156
11.1.3 顯示文件內容 156
11.1.4 從文件中讀取內容 156
11.1.5 把數據寫入文件 157
11.1.6 文件的遍歷 158
11.1.7 拷貝、刪除和重命名文件 159
11.1.8 決定文件的屬性 159
11.1.9 目錄的處理 160
11.2 從客戶端上載文件 162
11.2.1 處理上載文件 162
11.2.2 確定文件有效 163
11.3 完善工作申請表 164
11.4 非關系型數據庫 170
11.4.1 程序說明 170
11.4.2 地址簿的用戶界面 171
11.4.3 設計總體查看的表單 171
11.4.4 數據庫查詢 174
11.4.5 刪除條目 175
11.4.6 顯示條目 176
11.4.7 編輯地址簿 177
11.4.8 更新數據庫 178
11.4.9 增加新條目 178
11.4.10 從CSV文件輸入數據 180
11.4.11 綜合起來 181
11.5 小結 183
第12章 PHP與SQL數據庫 184
12.1 為何要使用數據庫 184
12.2 結構化查詢語言 186
12.2.1 PHP寫的SQL代碼測試器 186
12.2.2 SQL語言參考 190
12.3 PHP對數據庫連接的支持 198
12.3.1 MySQL數據庫 198
12.3.2 PHP中對MySQL支持的函數 200
12.4 一個PHP和MySQL應用程序的例子 215
12.5 小結 227
第13章 PHP與LDAP 228
13.1 目錄服務與LDAP 228
13.1.1 ldap特性 229
13.1.2 ldap與大規模數據庫 230
13.2 LDAP的工作 230
13.2.1 ldap組件 231
13.2.2 ldap的數據組織 231
13.2.3 ldap說明 232
13.2.4 目錄與數據庫 233
13.2.5 ldap的操作 233
13.2.6 ldap的方言—ldif 234
13.2.7 ldap的一些高級特性 236
13.3 LDAP軟件 237
13.3.1 ldap軟件的選擇 237
13.3.2 安裝與配置ldap服務器 238
13.3.3 運行slapd服務器 239
13.4 PHP對LDAP的支持 241
13.4.1 PHP提供的LDAP API 241
13.4.2 連接函數 242
13.4.3 查詢函數 242
13.4.4 修改函數 245
13.4.5 PHP的ldap應用程序 246
13.5 小結 258
第14章 XML 260
14.1 什么是XML 260
14.2 XML語言 262
14.2.1 XML文檔的結構 263
14.2.2 文檔類型定義 264
14.3 PHP對XML的支持 268
14.4 PHP的XML函數 268
14.4.1 生成XML解析器 270
14.4.2 注冊回調函數 271
14.4.3 解析XML文檔 277
14.4.4 釋放解析器 278
14.4.5 解析器選項 278
14.4.6 實用函數 278
14.5 PHP的XML應用程序 280
14.5.1 支持Web的企業級應用程序 280
14.5.2 聰明的檢索 280
14.5.3 轉換XML到HTML 280
14.5.4 相同數據的不同外觀 281
14.6 PHP XML應用程序示例 281
14.7 小結 292
第15章 圖像生成和處理 294
15.1 圖像和服務器端腳本 294
15.2 PHP中的圖像處理 297
15.2.1 安裝具有圖像支持的PHP 297
15.2.2 PHP的圖像函數 298
15.3 使用圖像函數的應用程序 319
15.3.1 使用PHP的示例圖像應用 319
15.3.2 顯示計數器的頁面 320
15.3.3 記錄點擊次數 320
15.3.4 生成圖像 322
15.4 小結 323
第16章 網絡連接 324
16.1 客戶和服務器 324
16.2 使用TCP 324
16.3 whois 函數 325
16.4 前臺的界面 327
16.5 擴展前臺界面 328
16.6 我的域名仍然可用嗎 329
16.7 Web客戶端 330
16.8 小結 334
第17章 發送和接收電子郵件 335
17.1 發送電子郵件 335
17.1.1 mail() 命令 335
17.1.2 mime_mail 類 336
17.1.3 使用SMTP 340
17.2 接收電子郵件 344
17.3 小結 347
第18章 cookie 349
18.1 什么是cookie 349
18.2 cookie的限制 349
18.3 PHP中的cookie 350
18.3.1 開始 350
18.3.2 你的名字是什么 352
18.4 存取一個cookie 352
18.5 設置一個cookie 353
18.5.1 多值cookie 353
18.5.2 設置失效日期 353
18.5.3 限制cookie的范圍 354
18.6 刪除一個cookie 355
18.7 一般未知危險 355
18.8 發送HTTP頭 356
18.9 小結 357
第19章 調試及錯誤處理 358
19.1 錯誤的類型 358
19.1.1 語法錯誤 358
19.1.2 語義錯誤 360
19.1.3 邏輯錯誤 361
19.1.4 環境錯誤 362
19.2 php的出錯信息 362
19.2.1 php的錯誤級別 363
19.2.2 設置錯誤報告的級別 366
19.3 錯誤處理 366
19.3.1 抑制錯誤信息 367
19.3.2 錯誤之后的完美恢復 367
19.3.3 錯誤檢查的定制 368
19.4 記錄錯誤 368
19.5 一些常見的錯誤 373
19.5.1 已發送頭信息 373
19.5.2 未定義函數 373
19.5.3 字符轉義錯誤 374
19.5.4 最大執行時間 375
19.6 小結 375
第20章 安全問題 377
20.1 安全的重要性 377
20.2 從頭開始 377
20.3 保護Web服務器 378
20.4 使PHP更為安全 381
20.5 使用安全模式 383
20.6 用戶識別和驗證 383
20.7 使用加密技術 386
20.8 使用SSL 388
20.8.1 下載OpenSSL和ModSSL 389
20.8.2 編譯和安裝OpenSSL庫 389
20.8.3 編譯和安裝mod_ssl 392
20.8.4 SSL基本配置 394
20.8.5 安裝專用密鑰 395
20.8.6 創建證書請求和臨時證書 396
20.8.7 取得簽名證書 397
20.9 使用Apache的suEXEC機制 397
20.10 創建安全的php腳本 398
20.11 小結 401
第21章 字符的自動轉義 402
21.1 問題所在 402
21.1.1 轉換過程 402
21.1.2 定義使用范圍 403
21.2 使用自動轉義 403
21.3 兩個有用的函數 405
21.4 可選方式 407
21.5 小結 407
第22章 模板 408
22.1 通用的模板技術 408
22.2 在應用程序中使用模板 408
22.2.1 內嵌PHP 408
22.2.2 分離通用部分的代碼 409
22.2.3 快速模板 410
22.2.4 網站框架 415
22.3 現有代碼與快速模板 417
22.4 小結 417
第23章 案例1—購物車應用程序 418
23.1 需求分析 418
23.2 選擇應用程序所需的軟件 419
23.3 最終用戶和購物車應用程序的交互 420
23.4 設計購物車應用程序 421
23.4.1 數據庫設計 422
23.4.2 中間層的設計 425
23.5 最終用戶特性的實現 426
23.6 應用程序代碼 432
23.7 管理界面的實現 457
23.8 小結 475
第24章 案例2—Phorum論壇程序 476
24.1 為什么使用PHP 476
24.1.1 數據庫支持 476
24.1.2 在HTML中內嵌PHP 477
24.1.3 異常錯誤的處理 479
24.2 Phorum怎樣運行 479
24.3 代碼研究 482
24.3.1 代碼重用 482
24.3.2 數據庫的抽象層 482
24.3.3 動態生成PHP代碼 483
24.3.4 在cookie中存放用戶數據 484
24.3.5 核心文件forums.inf 485
24.3.6 論壇列表 488
24.3.7 列出消息 489
24.3.8 閱讀消息 493
24.3.9 張貼消息 494
24.3.10 搜索 499
24.4 小結 501
第25章 案例3—電子郵件程序 503
25.1 程序功能 503
25.2 程序實現 503
25.3 小結 512
第26章 案例4—數據庫瀏覽器 513
26.1 設計應用程序 514
26.2 數據庫圖解 515
26.2.1 Protein表 515
26.2.2 位置表 516
26.3 腳本的整體設計 517
26.4 簡單SQL查詢腳本 517
26.5 包含外部函數模塊 520
26.5.1 生成SQL語句 520
26.5.2 數據中間層腳本 523
26.5.3 顯示結果 525
26.6 查詢標識字段 527
26.7 擴展查詢界面 532
26.8 一些想法 541
26.9 小結 542
第27章 案例5—session應用程序 543
27.1 關于session 543
27.2 在php3中實現session 544
27.2.1 安裝和初始化 544
27.2.2 基本使用方法 545
27.2.3 實地演習 546
27.3 php4中的session 547
27.3.1 從這里開始 547
27.3.2 與session相關的php.ini配置 549
27.3.3 php4中的session函數 550
27.4 session的定制 552
27.5 小結 558
附錄A PHP函數 559
附錄B 關于PHP的10個常見問題 759
附錄C 關于PHP的10個技巧 765
附錄D 關于PHP的10篇文章 770