摘要
本書幾乎在PHP 5的所有重要方面都提供了有用的參考,不僅包括先前版本中已經非常成熟的原有特性,而且還包括PHP 5中引入的新特性。比如,基本的PHP語法(數據類型、類、對象、接口、數組、數學運算)、日期和時間處理、字元串處理、檔案與目錄處理、動態圖像處理、正則表達式、變數處理、標記處理、MySQLi資料庫擴展、Web基礎,等等。書中有大量的實例解決方案,包含大量實用的代碼片段,你可以直接複製它們,然後貼上到自己的應用程式中,從而大大節約編碼時間。
無論你是剛入門的初學者,還是有多年開發經驗的資深開發者,在你的PHP 旅途中,本書都會是一位有用而且受歡迎的夥伴。當你遇到任何PHP方面的難題時,它會告訴你想要的答案。
目錄
第1章 PHP數據類型與概念概述 1
1-1 變數 1
1-2 數值 3
1-3 數組 4
1-4 字元串 5
1-5 正則表達式 6
1-6 函式 7
1-7 項目:查找值的數據類型 8
1-8 項目:發現可用的變數、常量、函式、類和接口 10
1-9 獲得當前腳本的信息 12
小結 16
下章預覽 16
第2章 類、對象和接口概述 17
基本概念 18
2-1 使用構造函式創建實例 19
2-2 使用默認構造函式21
2-3 設定對象屬性 22
2-4 控制對類成員的訪問 24
2-5 使用靜態成員和self關鍵字 27
2-6 使用類常量 31
2-7 擴展類 36
2-8 使用抽象類和方法 42
2-9 使用接口 45
2-10 使用類析構函式 46
2-11 使用異常 48
獲得類和對象的信息 51
使用類和對象函式 52
2-12 使用class_exists()和interface_exists()檢查類和接口是否存在 53
2-13 使用get_class_methods()列出方法和接口 54
2-14 獲得變數名 55
2-15 確定對象是否是某個類的實例 56
2-16 列出當前載入的接口和類 58
使用類反射API 60
2-17 獲得反射API的轉儲信息 62
2-18 完成動態類實例化 64
2-19 使用反射API分解Shape類 66
小結 70
下章預覽 71
第3章 數學運算 72
3-1 數值數據類型 72
3-2 隨機數 81
3-3 對數和指數 85
3-4 三角函式 89
3-5 格式化數值數據 92
3-6 數學庫 96
3-7 靜態Math類 99
小結 101
下章預覽 101
第4章 數組處理 102
4-1 創建數組 103
4-2 訪問數組元素 103
4-3 創建多維數組 104
4-4 使用數組鍵 104
4-5 將數組初始化為值的區間或序列 105
輸出數組 106
4-6 數組輸出為字元串 106
4-7 為保證向後兼容使用array_values()和array_keys()完成輸出 107
4-8 數組輸出為樹 108
向數組增加新元素 111
4-9 向數組末尾增加元素 111
4-10 將一個數組追加到另一個數組 112
4-11 比較數組 115
4-12 在數組開始處增加元素 116
4-13 在索引數組的任意位置插入新值 116
獲得和設定數組的大小 118
4-14 數組元素計數 118
4-15 設定數組大小 120
遍歷數組 122
4-16 使用foreach循環處理關聯數組122
4-17 使用for和count()循環處理壓縮索引數組 123
4-18 循環處理稀疏數組 124
刪除數組元素 125
4-19 刪除數組的第一個或最後一個元素 126
4-20 刪除一個或多個數組元素 127
4-21 抽取數組中的一部分 130
4-22 使用extract()從數組抽取值 131
4-23 使用list()從數組中抽取值 133
4-24 合併數組 134
4-25 獲得數組鍵和值 136
4-26 處理唯一值 137
4-27 獲得和顯示數組值的個數 137
查找和處理數組值 138
4-28 確定元素是否在數組中 139
4-29 測試鍵在數組中是否存在 140
4-30 獲得有給定值的數組鍵 141
4-31 查找數組中的最大值和最小值 142
4-32 查看數組中值的總和與平均值 143
對數組套用函式 144
4-33 使用array_walk()向數組元素套用函式 145
4-34 使用array_map()向數組元素套用函式 147
4-35 使用array_filter()過濾數組 149
數組排序 152
4-36 按值對數組排序 152
4-37 按鍵對數組排序 154
4-38 使用arsort()逆置數組 155
4-39 使用krsort()逆置數組 155
4-40 使用array_reverse()逆置數組 156
4-41 使用shuffle()、kshuffle()和array_rand()對數組隨機重排 156
4-42 使用比較函式對數組排序 157
4-43 多維數組排序 159
4-44 對多個數組排序 162
查看排列和組合 163
4-45 查看數組中元素的所有排列 163
4-46 查看數組中元素的所有組合 166
小結 166
下章預覽 167
第5章 日期和時間處理 168
PHP 5中的日期和時間函式概述 169
顯示日期和時間 170
5-1 顯示人可讀的日期和時間 171
5-2 顯示任意日期和時間 174
5-3 使用strtotime()將人可讀的日期轉換為unix時間戳175
5-4 根據星期幾查找相應日期 177
5-5 獲得一年中的日期和星期 180
5-6 確定給定的年是否為閏年 181
5-7 獲得檔案的時間和日期 182
5-8 設定時區和GMT/UTC 184
5-9 用其他語言顯示時間和日期 187
5-10 生成本地化GMT/UTC時間和
日期字元串 191
5-11 獲得兩個日期之差 192
5-12 項目:構造和使用日期類 198
5-13 擴展Date類 215
小結 228
下章預覽 228
第6章 字元串處理 229
操作子字元串 230
6-1 測試子字元串 230
6-2 統計子字元串出現的次數 232
6-3 訪問子字元串 233
6-4 使用其他子字元串函式 234
6-5 替換子字元串 234
處理字元串 235
6-6 聯結和分解字元串 236
6-7 逆置字元串 239
6-8 控制大小寫 239
6-9 去除空格 241
6-10 文本換行 242
6-11 檢查字元串長度 243
6-12 比較字元串 244
6-13 比較發音 245
項目:創建和使用字元串類 246
6-14 使用頁面讀取器類 247
小結 251
下章預覽 251
第7章 檔案與目錄處理 252
處理檔案 252
7-1 打開檔案 252
7-2 讀檔案 254
7-3 寫檔案 255
7-4 關閉檔案 257
7-5 讀寫逗號分隔的數據 258
7-6 讀固定寬度定界數據 260
7-7 讀寫檔案中的二進制數據 261
7-8 得到檔案中的行數 262
7-9 獲得檔案中的字元數、
單詞數或段落數 263
7-10 項目:創建和使用檔案類 265
處理目錄 268
7-11 列出當前目錄中的所有檔案 268
7-12 列出某種類型的所有檔案 269
7-13 根據日期對檔案排序 271
7-14 生成遞歸的目錄列表 273
7-15 使用SPL DirectoryIterator
對象 274
小結 276
下章預覽 276
第8章 動態圖像處理 277
處理圖像類型 277
8-1 處理JPG 277
8-2 處理GIF 279
8-3 處理PNG 281
處理圖像庫 282
從頭創建圖像 282
8-4 創建空畫布 283
8-5 創建和使用顏色 284
8-6 創建和套用不同的形狀和模式 286
8-7 輸出圖像 287
根據現有圖像創建圖像 289
8-8 載入現有圖像 290
8-9 修改現有圖像 291
8-10 保存和輸出修改後的圖像 293
使用TrueType字型294
8-11 載入字型 294
8-12 對圖像套用TrueType字型 296
8-13 項目:創建和使用動態縮略
圖類 298
小結 301
下章預覽 301
第9章 使用正則表達式 302
正則表達式語法概述 302
修飾符 302
區間 303
行錨 303
轉義 303
OR 303
字元類 304
POSIX與pcre304
POSIX 304
PCRE 305
使用正則表達式 306
9-1 使用字元串匹配和模式匹配 306
9-2 查找匹配的第n次出現 308
9-3 使用貪心和非貪心表達式匹配 308
9-4 匹配合法IP位址 309
9-5 驗證Pascal Case名稱 311
9-6 驗證美國貨幣 312
9-7 格式化電話號碼 314
9-8 查找重複詞 315
9-9 查找未跟在其他詞之後的詞 317
9-10 匹配合法的E-mail地址 317
9-11 查找檔案中所有匹配的行 319
9-12 查找有奇數個引號的行 320
9-13 捕獲HTML或XML標籤中的文本 321
9-14 對特殊字元轉義 323
9-15 將URL替換為連結 324
9-16 將智慧型引號替換為直引號 327
9-17 測試密碼的複雜性 327
9-18 匹配GUID/UUID 328
9-19 讀取有分隔設定的記錄 329
9-20 創建自己的RegExp類 331
小結 337
下章預覽 337
第10章 變數處理 338
10-1 使用變數類型 339
10-2 賦值和比較 341
10-3 類型強制轉換 346
10-4 使用常量 351
10-5 定義變數作用域 353
10-6 解析傳入函式的值 359
10-7 使用動態變數和函式名 362
10-8 封裝複雜數據類型 365
10-9 進程間共享變數 369
10-10 調試 371
小結 374
下章預覽 374
第11章 使用函式 375
11-1 訪問函式參數 375
11-2 為函式參數設定默認值 376
11-3 按引用傳遞值 377
11-4 創建參數個數可變的函式 378
11-5 返回多個值 379
11-6 按引用返回值 380
11-7 返回失敗 381
11-8 調用變數函式 382
11-9 在函式中訪問全局變數 384
11-10 創建動態函式 385
小結 386
下章預覽 386
第12章 Web基礎 387
使用cookie 387
12-1 設定cookie 387
12-2 讀取cookie 389
12-3 刪除cookie 390
12-4 編寫和使用cookie類 391
使用HTTP首部 392
12-5 重定向到不同位置 393
12-6 傳送非HTML的內容類型 394
12-7 要求檔案“另外儲存為”下載 395
使用會話 396
12-8 實現會話 396
12-9 在會話中存儲簡單的數據類型 398
12-10 在會話中存儲複雜數據類型 399
12-11 檢測瀏覽器 400
使用查詢字元串 402
12-12 使用查詢字元串 402
12-13 在查詢字元串中傳遞數字值 403
12-14 在查詢字元串中傳遞字元串值 404
12-15 在查詢字元串中傳遞複雜值 405
認證用戶 407
12-16 建立基於HTTP的認證 407
12-17 建立cookie認證 413
使用環境和配置變數 415
12-18 讀取環境變數和配置變數 415
12-19 設定環境變數和配置變數 416
小結 417
下章預覽 417
第13章 創建和使用表單 418
了解常見的表單問題 418
13-1 GET與POST 419
13-2 超全局變數與全局變數 421
13-3 驗證表單輸入 422
13-4 處理多頁表單 424
13-5 根據預置信息和錯誤訊息重新
顯示錶單 426
避免表單的多次提交 429
13-6 在伺服器端防止多次提交 429
13-7 在客戶端防止多次提交 430
13-8 完成檔案上傳 432
13-9 處理特殊字元 435
13-10 創建有多個選項的表單元素 436
13-11 根據當前時間和日期創建表單元素 437
小結 440
下章預覽 440
第14章 標記處理 441
14-1 理解標記概念 441
14-2 手工生成標記 442
14-3 使用DOM生成標記 443
14-4 創建和設定屬性 447
14-5 解析XML 450
14-6 用XSL轉換XML 455
14-7 使用RSS提要 457
14-8 使用WDDX 464
14-9 使用SOAP 467
小結 473
下章預覽 473
第15章 PHP 5中使用MySQL資料庫 474
資料庫概念基礎 474
15-1 連線MySQL資料庫 474
15-2 查詢資料庫 475
15-3 獲取和顯示結果 478
15-4 修改數據 480
15-5 刪除數據 481
15-6 動態構建查詢 483
mysqli擴展包與PHP 4 MySQL擴展包的比較 485
15-7 使用mysqli面向對象API 486
15-8 使用異常處理資料庫錯誤 489
15-9 項目:顯示連結查找結果 492
15-10 在表單中顯示結果 497
項目:在mysql和mysqli之間搭橋 499
15-11 發現使用哪一個擴展包 499
15-12 編寫包裝器類搭橋 501
15-13 項目:MySQL與XML間的轉換 505
小結 516
下章預覽 516
第16章 與Internet服務通信 517
16-1 傳送Internet郵件 517
16-2 項目:利用郵件類傳送E-mail 518
16-3 用IMAP或POP3讀郵件 521
16-4 使用FTP獲取和放置檔案 532
16-5 完成DNS查找 539
16-6 檢查主機是否活動 541
16-7 獲得域名的有關信息 545
小結 546
索引 547