第1章 php概述 1
1.1 曆史 1
1.1.1 php 4 2
1.1.2 php 5 3
1.2 php的一般特性 3
1.2.1 實用性 3
1.2.2 強大功能 4
1.2.3 可選擇性 4
1.2.4 成本 5
1.3 小結 5
第2章 安裝配置apache和php 6
2.1 安裝 6
2.1.1 獲得發行包 6
2.1.2 安裝過程 7
2.1.3 測試安裝 11
2.1.4 定製unix構建 12
2.1.5 定製windows構建 12
2.1.6 常見錯誤 13
2.1.7 查看並下載文檔 13
2.2 配置 13
2.2.1 管理php的配置指令 14
2.2.2 php的配置指令 15
2.3 小結 29
第3章 php基礎 30
3.1 界定php代碼 30
3.1.1 默認語法 30
3.1.2 短標記 31
3.1.3 腳本 31
3.1.4 asp風格 32
3.1.5 嵌入多個代碼塊 32
3.2 注釋 32
3.2.1 單行c++語法 32
3.2.2 shell語法 32
3.2.3 多行c語法 33
3.3 輸齣 33
3.3.1 print() 33
3.3.2 echo() 34
3.3.3 printf() 34
3.3.4 sprintf() 35
3.4 數據類型 35
3.4.1 標量數據類型 35
3.4.2 復閤數據類型 37
3.4.3 特殊數據類型 38
3.4.4 類型強製轉換 38
3.4.5 類型自動轉換 39
3.4.6 與類型有關的函數 40
3.4.7 類型標識符函數 40
3.5 標識符 41
3.6 變量 41
3.6.1 變量聲明 42
3.6.2 變量作用域 43
3.6.3 php的超級全局變量 45
3.6.4 變量的變量 48
3.7 常量 49
3.8 錶達式 49
3.8.1 操作數 50
3.8.2 操作符 50
3.9 字符串插入 54
3.9.1 雙引號 55
3.9.2 單引號 55
3.9.3 heredoc 56
3.10 控製結構 56
3.10.1 執行控製語句 57
3.10.2 條件語句 57
3.10.3 循環語句 59
3.10.4 文件包含語句 63
3.10.5 require_once() 65
3.11 小結 65
第4章 函數 66
4.1 調用函數 66
4.2 創建函數 66
4.2.1 按值傳遞參數 67
4.2.2 按引用傳遞參數 68
4.2.3 默認參數值 68
4.2.4 可選參數 68
4.2.5 從函數返迴值 69
4.2.6 嵌套函數 70
4.2.7 遞歸函數 70
4.2.8 變量函數 72
4.3 函數庫 73
4.4 小結 74
第5章 數組 75
5.1 什麼是數組 75
5.2 輸齣數組 76
5.3 創建數組 77
5.4 測試數組 79
5.5 增加和刪除數組元素 79
5.6 定位數組元素 81
5.7 遍曆數組 82
5.8 確定數組大小和唯一性 85
5.9 數組排序 86
5.10 閤並、拆分、接閤和分解數組 91
5.11 其他有用的數組函數 95
5.12 小結 96
第6章 麵嚮對象的php 97
6.1 oop的好處 97
6.1.1 封裝 97
6.1.2 繼承 98
6.1.3 多態 98
6.2 關鍵的oop概念 99
6.2.1 類 99
6.2.2 對象 99
6.2.3 字段 100
6.2.4 屬性 102
6.2.5 常量 104
6.2.6 方法 105
6.3 類型提示 108
6.4 構造函數和析構函數 108
6.4.1 構造函數 108
6.4.2 析構函數 110
6.5 靜態類成員 111
6.6 instanceof關鍵字 112
6.7 輔助函數 112
6.8 自動加載對象 114
6.9 小結 114
第7章 高級oop特性 115
7.1 php不支持的高級oop特性 115
7.2 對象剋隆 116
7.2.1 剋隆示例 116
7.2.2 __clone()方法 117
7.3 繼承 118
7.3.1 類繼承 118
7.3.2 繼承和構造函數 120
7.4 接口 121
7.4.1 實現一個接口 122
7.4.2 實現多個接口 123
7.5 抽象類 124
7.6 反射 124
7.6.1 編寫reflectionclass類 125
7.6.2 編寫reflectionmethod類 127
7.6.3 編寫reflectionparameter類 128
7.6.4 編寫reflectionproperty類 129
7.6.5 反射的其他用途 130
7.7 小結 130
第8章 錯誤和異常處理 131
8.1 配置指令 131
8.2 錯誤日誌 134
8.3 異常處理 135
8.3.1 為什麼異常處理很方便 136
8.3.2 php的異常處理實現 137
8.4 小結 140
第9章 字符串和正則錶達式 141
9.1 復雜(大括號)偏移語法 141
9.2 正則錶達式 142
9.2.1 正則錶達式語法(posix) 142
9.2.2 php的正則錶達式函數
(posix擴展) 144
9.2.3 正則錶達式語法(perl風格) 146
9.3 其他字符串函數 151
9.3.1 確定字符串長度 152
9.3.2 比較兩個字符串 152
9.3.3 處理字符串大小寫 154
9.3.4 字符串與html相互轉換 155
9.3.5 正則錶達式函數的替代函數 159
9.3.6 填充和剔除字符串 164
9.3.7 字符和單詞計數 165
9.4 使用pear:validate_us 167
9.4.1 安裝validate_us 167
9.4.2 使用validate_us 168
9.5 小結 168
第10章 處理文件和操作係統 169
10.1 瞭解文件和目錄 169
10.1.1 解析目錄路徑 169
10.1.2 文件類型和鏈接 171
10.1.3 計算文件、目錄和磁盤大小 173
10.1.4 訪問和修改時間 175
10.2 文件所有權和權限 176
10.3 文件i/o 178
10.3.1 資源的概念 178
10.3.2 換行 178
10.3.3 文件末尾 178
10.3.4 打開和關閉文件 179
10.3.5 讀取文件 180
10.3.6 移動文件指針 184
10.3.7 寫入文件 184
10.3.8 讀取目錄內容 185
10.4 執行shell命令 186
10.5 係統級程序執行 187
10.5.1 清理輸入 187
10.5.2 php的程序執行函數 188
10.6 小結 190
第11章 pear 191
11.1 流行的pear包 191
11.2 安裝和更新pear 193
11.2.1 安裝pear 193
11.2.2 pear和isp公司 194
11.2.3 更新pear 194
11.3 使用pear包管理器 194
11.3.1 查看安裝的包 195
11.3.2 瞭解安裝包的更多信息 195
11.3.3 安裝pear包 196
11.3.4 使用pear包 197
11.3.5 升級pear包 198
11.3.6 卸載pear包 198
11.3.7 降級pear包 199
11.4 小結 199
第12章 日期和時間 200
12.1 unix時間戳 200
12.2 php的日期和時間庫 200
12.3 日期函數 206
12.3.1 顯示本地化的日期和時間 206
12.3.2 顯示網頁的最新修改日期 209
12.3.3 確定當前月份中的天數 209
12.3.4 計算當前日期後x天的日期 209
12.3.5 創建日曆 210
12.4 php 5.1 213
12.4.1 date基礎 213
12.4.2 date構造函數 213
12.4.3 訪問方法和修改方法 214
12.4.4 驗證函數 216
12.4.5 處理方法 216
12.5 小結 222
第13章 錶單和導航提示 223
13.1 php和web錶單 223
13.1.1 簡單示例 224
13.1.2 嚮函數傳遞錶單數據 225
13.1.3 處理多值錶單組件 226
13.1.4 用php生成錶單 227
13.1.5 自動選擇錶單數據 228
13.1.6 php、web錶單和
javascript 229
13.2 導航提示 231
13.2.1 用戶友好的url 231
13.2.2 “麵包屑型”軌跡 233
13.2.3 創建定製錯誤處理函數 237
13.3 小結 238
第14章 身份認證 239
14.1 http認證概念 239
14.2 php認證 240
14.2.1 認證變量 240
14.2.2 認證方法 241
14.3 用戶登錄管理 248
14.3.1 密碼指派 248
14.3.2 使用cracklib庫測試密碼
易猜性 250
14.3.3 一次性url和密碼恢復 251
第15章 處理文件上傳 254
15.1 通過http協議上傳文件 254
15.2 通過php處理上傳 255
15.2.1 php的文件上傳/資源指令 255
15.2.2 $_files數組 256
15.2.3 php的文件上傳函數 256
15.2.4 上傳錯誤消息 258
15.2.5 文件上傳示例 258
15.3 利用pear:http_upload 261
15.3.1 安裝http_upload 261
15.3.2 瞭解關於上傳文件的更多
信息 262
15.3.3 將上傳的文件移動到最終
目標 263
15.3.4 上傳多個文件 263
15.4 小結 264
第16章 網絡 265
16.1 dns、服務器和服務 265
16.1.1 dns 265
16.1.2 服務 268
16.1.3 建立套接字連接 269
16.2 郵件 271
16.2.1 配置指令 271
16.2.2 發送純文本電子郵件 272
16.2.3 使用額外的信息首部發送
電子郵件 272
16.2.4 將電子郵件發送給多個
接收者 273
16.2.5 發送html格式的電子郵件 273
16.2.6 發送附件 274
16.3 imap、pop3和nntp 275
16.3.1 需求 276
16.3.2 建立和關閉連接 276
16.3.3 瞭解更多關於郵箱和郵件
的信息 277
16.3.4 獲取郵件 280
16.3.5 寫郵件 286
16.3.6 發送郵件 286
16.3.7 郵箱管理 287
16.3.8 郵件管理 288
16.4 流 288
16.4.1 流包裝器和上下文 289
16.4.2 流過濾器 290
16.5 常見網絡任務 291
16.5.1 連接一颱服務器 291
16.5.2 端口掃描器 292
16.5.3 子網轉換器 293
16.5.4 測試用戶帶寬 294
16.6 小結 295
第17章 php和ldap 296
17.1 ldap介紹 297
17.2 在php中使用ldap 297
17.2.1 連接到ldap服務器 297
17.2.2 綁定到ldap服務器 298
17.2.3 關閉ldap服務器連接 299
17.2.4 獲取ldap數據 299
17.2.5 處理項值 301
17.2.6 統計所獲取的項 302
17.2.7 獲取屬性 302
17.2.8 排序和比較ldap項 305
17.2.9 處理項 306
17.2.10 迴收內存 308
17.2.11 插入ldap數據 309
17.2.12 更新ldap數據 309
17.2.13 刪除ldap數據 310
17.2.14 配置函數 311
17.2.15 字符編碼 312
17.2.16 處理區分名 312
17.2.17 錯誤處理 313
17.3 小結 314
第18章 會話處理器 315
18.1 什麼是會話處理 315
18.1.1 cookie 315
18.1.2 url重寫 316
18.1.3 會話處理過程 316
18.2 配置指令 317
18.3 關鍵概念 320
18.3.1 開始會話 320
18.3.2 銷毀會話 321
18.3.3 獲取和設置會話id 321
18.3.4 創建和刪除會話變量 321
18.3.5 編碼和解碼會話數據 322
18.4 實際的會話處理示例 324
18.4.1 自動登錄 324
18.4.2 最近瀏覽的文檔索引 325
18.5 創建定製會話處理器 327
18.5.1 將定製會話函數加入到php
邏輯 327
18.5.2 基於mysql的定製會話
處理器 328
18.6 小結 330
第19章 用smarty模闆化 331
19.1 什麼是模闆化引擎 331
19.2 smarty介紹 333
19.3 安裝smarty 333
19.4 使用smarty 334
19.5 smarty的錶現邏輯 336
19.5.1 注釋 336
19.5.2 變量修飾符 336
19.5.3 控製結構 339
19.5.4 語句 342
19.6 創建配置文件 344
19.6.1 config_load 345
19.6.2 引用配置變量 345
19.7 結閤smarty使用css 346
19.8 緩存 347
19.8.1 處理緩存生命期 347
19.8.2 通過is_cached()消除處理
開銷 348
19.8.3 為每個模闆創建多個緩存 348
19.8.4 關於緩存的結束語 349
19.9 小結 350
第20章 web服務 351
20.1 為什麼使用web服務 352
20.2 真正簡單聚閤 353
20.2.1 rss語法 355
20.2.2 magpierss 356
20.3 simplexml 361
20.3.1 simplexml函數 362
20.3.2 simplexml方法 363
20.4 soap 365
20.4.1 nusoap 366
20.4.2 php 5的soap擴展 374
20.5 使用php web服務和c#客戶 381
20.6 小結 383
第21章 安全php編程 384
21.1 安全地配置php 384
21.1.1 安全模式 385
21.1.2 其他與安全有關的配置參數 386
21.2 隱藏配置細節 388
21.3 隱藏敏感數據 389
21.3.1 注意文檔根目錄 390
21.3.2 拒絕訪問某些文件擴展名 390
21.4 清理用戶數據 390
21.4.1 文件刪除 390
21.4.2 跨網站腳本 391
21.4.3 清理用戶輸入:解決方案 392
21.5 數據加密 394
21.5.1 php的加密函數 394
21.5.2 mhash 395
21.5.3 mcrypt 396
21.6 小結 397
第22章 sqlite 398
22.1 sqlite介紹 398
22.1.1 安裝sqlite 398
22.1.2 使用sqlite命令行界麵 399
22.2 php的sqlite庫 400
22.2.1 sqlite指令 400
22.2.2 打開連接 400
22.2.3 在內存中創建錶 401
22.2.4 關閉連接 401
22.2.5 查詢數據庫 402
22.2.6 解析結果集 403
22.2.7 獲取結果集細節 405
22.2.8 操作結果集指針 406
22.2.9 瞭解錶模式的更多信息 408
22.2.10 操作二進製數據 408
22.2.11 創建和覆蓋sqlite函數 409
22.2.12 創建聚集函數 410
22.3 小結 411
第23章 pdo介紹 412
23.1 為什麼還要另一種數據庫抽象層 413
23.2 使用pdo 413
23.2.1 安裝pdo 414
23.2.2 pdo的數據庫支持 414
23.2.3 連接到數據庫服務器並選擇
數據庫 415
23.2.4 存取屬性 416
23.2.5 錯誤處理 417
23.2.6 查詢執行 417
23.2.7 準備語句 418
23.2.8 獲取數據 421
23.2.9 設置綁定列 423
23.2.10 事務 424
23.3 小結 425
第24章 mysql介紹 426
24.1 mysql為什麼如此流行 426
24.1.1 靈活性 426
24.1.2 強大功能 427
24.1.3 靈活的許可選擇 428
24.1.4 超級活躍的用戶群體 429
24.2 mysql 4 429
24.3 mysql 5 430
24.4 著名的mysql用戶 430
24.4.1 craigslist 430
24.4.2 雅虎財經 431
24.4.3 維基百科 431
24.5 小結 431
第25章 安裝和配置mysql 432
25.1 php和mysql許可問題 432
25.1.1 linux 433
25.1.2 windows 433
25.2 下載mysql 433
25.3 安裝mysql 434
25.3.1 linux 434
25.3.2 windows 437
25.4 設置mysql管理員密碼 439
25.5 啓動和停止mysql 439
25.5.1 手工控製守護進程 439
25.5.2 自動啓動和停止mysql 441
25.6 配置和優化mysql 442
25.6.1 mysqld_safe 443
25.6.2 配置和優化參數 443
25.6.3 my.cnf文件 446
25.7 小結 448
第26章 眾多mysql客戶端 449
26.1 標準客戶端選項 449
26.2 連接選項 450
26.3 一般選項 450
26.4 mysql 451
26.4.1 關鍵mysql選項 451
26.4.2 以交互模式使用mysql 452
26.4.3 查看配置變量和係統狀態 454
26.4.4 以批處理模式使用mysql 455
26.4.5 有用的mysql提示 456
26.5 mysqladmin 458
26.6 其他實用工具 459
26.6.1 mysqldump 459
26.6.2 mysqlshow 459
26.6.3 mysqlhotcopy 460
26.6.4 mysqlimport 460
26.6.5 myisamchk 461
26.6.6 mysqlcheck 461
26.7 第三方客戶端程序 462
26.7.1 mysql管理器 462
26.7.2 phpmyadmin 463
26.7.3 mysql查詢瀏覽器 464
26.7.4 navicat 465
26.8 小結 466
第27章 mysql存儲引擎和數據類型 467
27.1 存儲引擎 467
27.1.1 innodb 468
27.1.2 myisam 468
27.1.3 memory 470
27.1.4 merge 471
27.1.5 bdb 471
27.1.6 federated 471
27.1.7 archive 472
27.1.8 csv 473
27.1.9 example 473
27.1.10 blackhole 473
27.1.11 存儲引擎faq 473
27.2 數據類型和屬性 475
27.2.1 數據類型 475
27.2.2 數據類型屬性 479
27.3 操作數據庫和錶 481
27.3.1 操作數據庫 481
27.3.2 操作錶 483
27.3.3 修改錶結構 485
27.3.4 information_schema 485
27.4 小結 487
第28章 保護mysql的安全 488
28.1 首先應當做什麼 488
28.2 保護mysqld守護進程 489
28.3 mysql訪問權限係統 489
28.3.1 權限係統的工作方式 490
28.3.2 訪問信息存儲在哪裏 491
28.4 用戶和權限管理 498
28.4.1 create user 498
28.4.2 drop user 499
28.4.3 rename user 499
28.4.4 grant和revoke命令 499
28.4.5 查看權限 503
28.5 限製用戶資源 503
28.6 保護mysql連接 504
28.6.1 授權選項 504
28.6.2 ssl選項 505
28.6.3 啓動啓用ssl的mysql
服務器 506
28.6.4 使用啓用ssl的客戶端進行
連接 506
28.6.5 在my.cnf文件中存儲ssl
選項 506
28.7 小結 507
第29章 php的mysql擴展 508
29.1 預備工作 508
29.1.1 在linux中啓用mysql擴展 508
29.1.2 在windows中啓用mysql
擴展 508
29.1.3 用戶權限 509
29.1.4 示例數據 509
29.2 php的mysql命令 509
29.2.1 建立和關閉連接 509
29.2.2 在單獨的文件中存儲連接
信息 511
29.2.3 保護連接信息 511
29.3 選擇數據庫 512
29.4 查詢mysql 512
29.5 獲取和顯示數據 513
29.6 插入數據 516
29.7 修改數據 517
29.8 刪除數據 519
29.9 所選擇的記錄和受影響的記錄 520
29.10 獲取數據庫和錶的信息 521
29.11 獲取字段信息 523
29.11.1 查看錶屬性 526
29.11.2 獲取錯誤信息 527
29.12 輔助函數 528
29.13 小結 530
第30章 php的mysqli擴展 531
30.1 預備工作 532
30.1.1 在unix中啓用mysqli
擴展 532
30.1.2 在windows中啓用mysqli
擴展 532
30.1.3 示例數據 532
30.2 使用mysqli擴展 532
30.2.1 連接mysql服務器 532
30.2.2 連接錯誤報告 533
30.2.3 選擇一個mysql數據庫 535
30.2.4 關閉mysql連接 536
30.3 查詢 536
30.3.1 查詢執行 536
30.3.2 迴收查詢內存 537
30.3.3 準備結果集 538
30.3.4 解析結果 539
30.3.5 多個查詢 542
30.3.6 準備語句 543
30.4 數據庫事務 548
30.5 小結 549
第31章 存儲例程 550
31.1 應當使用存儲例程嗎 550
31.1.1 存儲例程的優點 550
31.1.2 存儲例程的缺點 551
31.2 mysql如何實現存儲例程 551
31.2.1 存儲例程權限錶 551
31.2.2 創建存儲例程 553
31.2.3 聲明和設置變量 554
31.2.4 執行存儲例程 555
31.2.5 多語句存儲例程 556
31.2.6 從另一個例程中調用例程 562
31.2.7 修改存儲例程 563
31.2.8 刪除存儲例程 563
31.2.9 查看例程狀態 563
31.2.10 查看例程的創建語法 564
31.2.11 條件和處理器 564
31.3 將例程集成到web應用程序 565
31.3.1 創建員工奬金界麵 565
31.3.2 獲取多條記錄 566
31.4 小結 566
第32章 mysql觸發器 567
32.1 介紹觸發器 567
32.1.1 為什麼使用觸發器 567
32.1.2 在事件前采取行動 568
32.1.3 在事件後采取行動 568
32.1.4 前觸發器和後觸發器 569
32.2 mysql對觸發器的支持 569
32.2.1 創建觸發器 570
32.2.2 查看現有的觸發器 571
32.2.3 修改觸發器 572
32.2.4 刪除觸發器 572
32.2.5 級聯觸發器 573
32.3 將觸發器集成到web應用程序 574
32.4 小結 575
第33章 視圖 576
33.1 視圖概述 576
33.2 mysql對視圖的支持 577
33.2.1 創建和執行視圖 577
33.2.2 查看視圖信息 581
33.2.3 修改視圖 582
33.2.4 刪除視圖 583
33.2.5 更新視圖 583
33.3 將視圖結閤到web應用程序中 583
33.4 小結 585
第34章 實用數據庫查詢 586
34.1 示例數據 586
34.2 用pear創建錶格輸齣 587
34.2.1 安裝html_table 587
34.2.2 創建一個簡單錶 587
34.2.3 創建更可讀的行輸齣 589
34.2.4 根據數據庫數據創建錶格 589
34.2.5 一般化輸齣過程 591
34.3 排序輸齣 593
34.4 創建分頁輸齣 594
34.5 列齣頁碼 597
34.6 子查詢 598
34.6.1 用子查詢完成比較 599
34.6.2 用子查詢確定存在性 599
34.6.3 用子查詢維護數據庫 600
34.6.4 在php中使用子查詢 601
34.7 遊標 601
34.7.1 遊標基礎 601
34.7.2 創建遊標 602
34.7.3 打開遊標 602
34.7.4 使用遊標 602
34.7.5 關閉遊標 603
34.7.6 在php中使用遊標 604
34.8 小結 604
第35章 索引和搜索 605
35.1 數據庫索引 605
35.1.1 主鍵索引 605
35.1.2 唯一索引 606
35.1.3 常規索引 607
35.1.4 全文索引 608
35.1.5 索引最佳實踐 611
35.2 基於錶單的搜索 611
35.2.1 執行簡單搜索 612
35.2.2 擴展搜索功能 613
35.2.3 執行全文搜索 614
35.3 小結 615
第36章 事務 616
36.1 什麼是事務 616
36.2 mysql的事務功能 616
36.2.1 係統需求 617
36.2.2 錶創建 617
36.2.3 innodb配置參數 618
36.3 示例項目 619
36.3.1 示例數據 620
36.3.2 執行示例事務 620
36.3.3 備份和恢復innodb錶 622
36.3.4 用法提示 622
36.4 用php構建事務應用程序 622
36.5 小結 624
第37章 導入和導齣數據 625
37.1 示例錶 625
37.2 獲得閤適的媒介 625
37.3 導齣數據 626
37.4 導入數據 628
37.4.1 利用load data infile導入
數據 628
37.4.2 用mysqlimport導入 631
37.4.3 用php加載錶數據 633
37.5 小結 634
索引
· · · · · · (
收起)
《PHP與MySQL 5程序設計》(第2版)是久負盛名的經典著作,以涵蓋全麵詳實而著稱,對主題的選取和組織從實用齣發,在講述知識之外還加入瞭作者自己的應用經驗,並提供瞭密集的實戰代碼示例,充分體現瞭作者深厚的開發功力。書中對PHP的介紹是迄今為止最為全麵的,除瞭基礎知識外,還強調瞭PHP的麵嚮對象特性、錯誤和異常處理、安全編程等方麵,並講述瞭其他圖書很少涉及而實踐中卻非常重要的日期與時間、正則錶達式、文件與操作係統、文件上傳、PEAR庫、Smarty模闆、SQLite、PDO等技術。而對MySQL的闡述則圍繞動態Web站點的開發展開,透徹而又精到。
最好的編程圖書應該不是純粹地講述理論,而是要切閤實際。如果你希望獲得PHP編程語言和MySQL數據庫服務器的實踐經驗,對它們有全麵的瞭解,並且想知道如何結閤這些卓越的技術創建數據庫驅動的動態Web應用程序,那麼《PHP與MySQL 5程序設計》(第2版)正閤你所需。在《PHP與MySQL 5程序設計》(第2版)第一版齣版後的18個月中,PHP和MySQL社區依舊持續“狂熱”地工作著,使得這兩項卓越技術又有瞭顯著的發展。因此,這一版增加瞭很多新內容,篇幅也增加瞭100多頁。