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