內容簡介
在最近的幾年中,PHP已經發展成為世界上*為流行的Web平台,它運行在全球超過1/3的Web伺服器上。PHP的發展不僅是數量上的,也是質量上的。越來越多的公司,包括全球500強榜上的公司都依靠PHP來運行它們的商業級套用,從而創造了新的就業機會並增加了更多的PHP開發需求。
本書共分14章,主要內容包括PHP環境的搭建、PHP開發工具、變數和常量、運算符與表達式、流程控制、數學函式、字元串搜尋和截取、檔案讀寫、檔案上傳與下載等。在套用方面介紹了PHP獲取HTML表單數據,獲取Cookie和Session數據,獲取資料庫數據,獲取XML和JSON數據,獲取Ajax異步數據等知識。*後一章介紹了常用的幾種設計模式在PHP中的實現,如單例模式、工廠方法、適配器模式和狀態模式等。
本書可以作為高等院校計算機相關專業PHP語言程式設計課程的教材,也可以作為PHP程式設計的培訓教材,還可以作為自學者的參考書。
作者簡介
李鑫,具有多年.NET項目開發經驗,深入掌握.NET框架技術,熟練開發ASP.NET與WinForm項目,精通C#、ASP 、C++、VB語言,熟練使用MTS、COM+、Web Service分散式架構。
王瑞敬,網際網路社區架構師,一個擁有5年軟體工程經驗和深厚理論基礎的軟體工程專家,善於解剖和分析問題,使用生動形象的比喻,將複雜的、難於理解的問題與知識簡單化講解。致力於研究、最佳化Web 2.0系統架構技術,對LAMP體系架構有著豐富的經驗,挖掘LAMP架構的性能潛力,探索新型高效能的Web 2.0站點系統支撐平台以及系統集群。
圖書目錄
第1章PHP入門基礎
1.1PHP簡介 2
1.1.1PHP發展歷史 2
1.1.2PHP的優勢 3
1.2配置PHP運行環境 4
1.2.1高手帶你做——安裝Apache 4
1.2.2高手帶你做——配置PHP5 5
1.3查看PHP配置檔案 8
1.4選擇PHP語法風格 9
1.4.1默認標記 9
1.4.2ASP風格標記 9
1.4.3腳本標記 10
1.4.4短標記 10
1.5程式注釋 12
1.5.1單行注釋 12
1.5.2多行注釋 12
1.6快速搭建PHP環境 13
1.6.1高手帶你做——安裝WampServer 13
1.6.2高手帶你做——安裝phpStudy 15
1.7PHP開發工具 17
1.7.1SublimeText 17
1.7.2PhpStorm 19
1.8高手帶你做——自定義Apache
的主目錄 21
1.9高手帶你做——在IIS上配置PHP
環境 22
1.10成長任務 24
第2章PHP基礎語法
2.1常量 26
2.1.1定義常量 26
2.1.2引用常量 26
2.1.3const關鍵字 27
2.1.4高手帶你做——認識魔術常量 28
2.2變數 29
2.2.1聲明變數 29
2.2.2變數賦值 30
2.2.3可變變數 31
2.2.4變數的作用域 32
2.2.5變數銷毀 35
2.2.6高手帶你做——超級全局變數 35
2.3數據類型 36
2.3.1標量數據類型 36
2.3.2複合數據類型 40
2.3.3特殊數據類型 41
2.4數據類型轉換 43
2.4.1強制類型轉換 43
2.4.2自動類型轉換 45
2.4.3數據類型函式 46
2.5運算符 47
2.5.1算術運算符 47
2.5.2賦值運算符 48
2.5.3邏輯運算符 48
2.5.4比較運算符 49
2.5.5位運算符 50
2.5.6遞增與遞減運算符 50
2.5.7錯誤控制運算符 51
2.6高手帶你做——認識條件運算符 52
2.7表達式 53
2.8運算符的優先權 54
2.9PHP輸出函式 55
2.9.1echo()函式 55
2.9.2print()函式 56
2.9.3printf()函式 58
2.9.4格式控制 58
2.9.5sprintf()函式 60
2.9.6高手帶你做——考生信息輸出 61
2.10成長任務 62
第3章流程控制語句
3.1了解算法……………………………64
3.1.1算法的定義……………………64
3.1.2高手帶你做——使用算法
求1到4的和…………………64
3.1.3算法描述方式…………………65
3.2順序結構……………………………68
3.2.1語句編寫方式…………………68
3.2.2空語句…………………………69
3.2.3表達式語句……………………69
3.2.4複合語句………………………69
3.3if條件語句……………………………70
3.3.1if語句的語法…………………70
3.3.2雙條件if語句…………………72
3.3.3多條件if語句…………………73
3.3.4高手帶你做——嵌套if的使用…74
3.4switch條件語句………………………75
3.4.1switch語句的格式……………75
3.4.2if語句和switch語句的區別……77
3.4.3高手帶你做——根據出生
日期判斷星座…………………78
3.5循環語句……………………………79
3.5.1while語句………………………79
3.5.2dowhile語句…………………80
3.5.3for語句…………………………81
3.5.4高手帶你做——九九乘法口訣表…84
3.5.5foreach語句……………………85
3.6其他語句……………………………86
3.6.1return語句……………………87
3.6.2break語句………………………88
3.6.3continue語句…………………89
3.6.4goto語句………………………90
3.7高手帶你做——判斷閏年……………91
3.8高手帶你做——輸出楊輝三角形……92
3.9成長任務……………………………93
第4章PHP函式
4.1用戶函式……………………………96
4.1.1函式定義的語法結構…………96
4.1.2使用函式………………………97
4.1.3函式的返回值…………………97
4.1.4按值傳遞參數…………………98
4.1.5按引用傳遞參數………………99
4.1.6默認值傳遞參數………………100
4.1.7可變參數列表…………………101
4.1.8變數、常量與函式……………102
4.1.9高手帶你做——判斷函式
是否存在………………………103
4.2高手帶你做——函式高級套用………103
4.2.1遞歸函式………………………104
4.2.2嵌套函式………………………104
4.2.3變數函式………………………105
4.3變數處理函式………………………106
4.4數學函式……………………………106
4.5日期和時間函式……………………107
4.5.1checkdate()函式………………108
4.5.2getdate()函式…………………108
4.5.3date()函式………………………109
4.5.4strtotime()函式…………………111
4.5.5microtime()函式………………112
4.5.6gmdate()函式…………………112
4.5.7time()函式……………………112
4.6實戰——模擬實現用戶系統
登錄功能……………………………113
4.7引用檔案的函式……………………114
4.7.1include()函式…………………115
4.7.2require()函式…………………116
4.7.3include_once()函式和
require_once()函式……………118
4.8成長任務……………………………120
第5章面向對象編程
5.1面向對象簡介………………………122
5.1.1對象的概念……………………122
5.1.2抽象性…………………………122
5.1.3封裝性…………………………123
5.1.4繼承性…………………………123
5.1.5多態性…………………………124
5.2類和對象……………………………125
5.2.1高手帶你做——認識類和對象…125
5.2.2定義類…………………………126
5.2.3實例化類………………………127
5.3類的成員……………………………127
5.3.1常量……………………………127
5.3.2欄位……………………………128
5.3.3屬性……………………………131
5.3.4方法……………………………133
5.4構造函式和析構函式………………134
5.4.1構造函式………………………135
5.4.2高手帶你做——查看個人信息…136
5.4.3析構函式………………………137
5.5作用域關鍵字………………………138
5.5.1abstract關鍵字…………………138
5.5.2final關鍵字……………………139
5.5.3private關鍵字…………………139
5.5.4protected關鍵字………………140
5.5.5public關鍵字…………………141
5.5.6static關鍵字……………………142
5.6繼承…………………………………143
5.6.1類繼承…………………………143
5.6.2構造函式繼承…………………145
5.6.3高手帶你做——實現圖書
分類顯示………………………146
5.7PHP實現接口………………………148
5.7.1接口概述………………………148
5.7.2定義接口………………………149
5.7.3實現接口………………………149
5.8成長任務……………………………152
第6章數組的套用
6.1認識數組……………………………154
6.2基本操作……………………………155
6.2.1通過賦值創建數組……………155
6.2.2使用array()函式創建數組……156
6.2.3創建多維數組…………………157
6.2.4輸出數組內容…………………159
6.2.5測試數組………………………160
6.3遍歷數組……………………………161
6.3.1foreach語句遍歷………………161
6.3.2for語句遍歷……………………162
6.3.3each()函式遍歷………………163
6.3.4遍歷數組的函式………………164
6.4簡單計算……………………………164
6.4.1計算元素總數…………………164
6.4.2計算元素出現的頻率…………165
6.4.3計算出現的所有元素…………166
6.5元素操作……………………………166
6.5.1增加元素………………………167
6.5.2刪除元素………………………169
6.5.3定位元素………………………170
6.5.4提取元素………………………173
6.6數組排序……………………………176
6.6.1按值排序………………………176
6.6.2按鍵排序………………………178
6.6.3關聯排序………………………179
6.6.4高手帶你做——級聯排序……181
6.6.5高手帶你做——按先奇後偶
的降序排列數組………………182
6.7其他操作……………………………183
6.7.1高手帶你做——隨機獲取元素…183
6.7.2聯合數組………………………184
6.7.3合併數組………………………185
6.7.4拆分數組………………………187
6.7.5替換數組………………………188
6.7.6判斷數組的類型………………189
6.7.7查找鍵名是否存在……………190
6.7.8查找值是否存在………………191
6.7.9去除重複元素值………………192
6.7.10高手帶你做——數組鍵名和
值調換…………………………193
6.8成長任務……………………………194
第7章字元串套用
7.1字元串簡介…………………………196
7.2定義字元串…………………………196
7.2.1使用單引號……………………197
7.2.2使用雙引號……………………197
7.2.3使用定界符……………………198
7.3高手帶你做——連線多個字元串……199
7.4統計字元串…………………………199
7.4.1統計字元串的長度……………200
7.4.2統計字元的出現頻率…………200
7.4.3統計單詞數量…………………201
7.5操作字元串內容……………………202
7.5.1大小寫替換……………………202
7.5.2去除空格和特殊字元…………204
7.5.3比較字元串……………………206
7.5.4查找字元串……………………208
7.6操作子字元串………………………210
7.6.1分隔字元串……………………210
7.6.2填充字元串……………………212
7.6.3截取字元串……………………213
7.6.4替換字元串……………………216
7.7高手帶你做——字元串與
HTML轉換…………………………218
7.8字元串編碼…………………………222
7.8.1高手帶你做——認識字元集
與編碼…………………………222
7.8.2頁面編碼設定…………………225
7.8.3編碼轉換………………………227
7.8.4字元串加密……………………228
7.9成長任務……………………………230
第8章檔案處理
8.1查看檔案屬性信息……232
8.1.1檔案類型232
8.1.2檔案大小232
8.1.3訪問和修改時間233
8.1.4其他屬性的獲取234
8.2高手帶你做——操作檔案……235
8.2.1複製檔案236
8.2.2重命名檔案……236
8.2.3刪除檔案236
8.3打開和關閉檔案……237
8.3.1打開檔案237
8.3.2關閉檔案238
8.4讀取檔案238
8.4.1讀取一行239
8.4.2讀取指定位元組…242
8.4.3讀取全部內容…244
8.4.4其他讀取函式…245
8.5寫入檔案246
8.5.1fwrite()函式……247
8.5.2fputs()函式……248
8.5.3file_put_contents()函式249
8.6高手帶你做——認識檔案指針250
8.6.1fseek()函式……251
8.6.2ftell()函式251
8.6.3rewind()函式…252
8.7操作目錄……252
8.7.1打開目錄252
8.7.2關閉目錄253
8.7.3遍歷目錄253
8.7.4創建目錄256
8.7.5刪除目錄256
8.8解析路徑……257
8.8.1獲取檔案名稱……257
8.8.2獲取目錄部分…257
8.8.3獲取路徑中的各個部分257
8.8.4獲取絕對路徑…258
8.9讀取磁碟屬性259
8.9.1獲取目錄所在磁碟的
可用空間259
8.9.2獲取磁碟總容量260
8.9.3高手帶你做——獲取目錄
占用的空間……260
8.10高手帶你做——實現項目的新增
和保存262
8.11成長任務……265
第9章獲取頁面數據
9.1認識HTML表單……268
9.2製作HTML表單……268
9.2.1表單的組成元素269
9.2.2表單標籤270
9.2.3文本框…270
9.2.4多行文本框……271
9.2.5隱藏域…271
9.2.6複選框…272
9.2.7單選按鈕272
9.2.8下拉選擇框……273
9.2.9檔案上傳框……274
9.2.10表單按鈕274
9.3獲取表單數據275
9.3.1設定表單提交方式……276
9.3.2獲取GET提交的數據…277
9.3.3獲取POST提交的數據279
9.4表單的常見操作……280
9.4.1遍歷表單280
9.4.2獲取表單中的多值……282
9.4.3高手帶你做——動態生成表單…284
9.5高手帶你做——表單處理技巧288
9.5.1檢測表單提交路徑……288
9.5.2避免表單重複提交……290
9.5.3表單過期處理…292
9.6轉換URL中的漢字…293
9.6.1編碼操作293
9.6.2解碼操作293
9.7檔案上傳……294
9.7.1準備檔案上傳表單……294
9.7.2處理上傳檔案…295
9.8檔案下載……297
9.9高手帶你做——身份驗證……299
9.9.1HTTP身份驗證299
9.9.2PHP身份認證…300
9.10成長任務……303
第10章會話處理
10.1了解Cookie…306
10.1.1Cookie簡介…306
10.1.2Cookie的工作原理…306
10.1.3Cookie的類型和屬性307
10.2操作Cookie…308
10.2.1創建Cookie…308
10.2.2讀取Cookie…309
10.2.3設定Cookie過期時間311
10.2.4高手帶你做——刪除Cookie…312
10.3高手帶你做——實現記住上次
登錄時間……313
10.4了解Session…316
10.4.1Session簡介…316
10.4.2Session的常用函式…317
10.5操作Session…318
10.5.1獲取SessionID318
10.5.2讀寫Session數據……319
10.5.3編碼Session數據……323
10.5.4解碼Session數據……324
10.5.5刪除Session數據……325
10.5.6Session的快取326
10.6高手帶你做——實現購物車327
10.7高手帶你做——認識Cookie
與Session的區別…333
10.8成長任務……334
第11章資料庫編程
11.1MySQL資料庫……336
11.1.1安裝MySQL資料庫…336
11.1.2配置MySQL資料庫…338
11.1.3高手帶你做——MySQL
快速入門操作…340
11.2PHP連線MySQL方式……341
11.2.1mysql庫342
11.2.2mysqli庫342
11.2.3PDO庫343
11.3連線MySQL資料庫344
11.3.1創建連線對象…344
11.3.2設定連線選項…345
11.3.3測試連線錯誤…346
11.3.4關閉連線346
11.4基本操作……347
11.4.1執行更新語句…348
11.4.2 mysqli_result 類 349
11.4.3 fetch_row() 方法 350
11.4.4 fetch_assoc() 方法 351
11.4.5 fetch_array() 方法 352
11.4.6 fetch_object() 方法 353
11.4.7 獲取數據列的信息 354
11.4.8 一次執行多條SQL 命令 355
11.5 使用預處理語句 357
11.5.1 mysqli_stmt 類 357
11.5.2 綁定參數預處理語句 358
11.5.3 綁定結果預處理語句 360
11.6 讀取資料庫顯示亂碼解決方案 361
11.6.1 了解產生亂碼的原因 361
11.6.2 PHP 網頁的編碼 361
11.6.3 MySQL 資料庫的編碼 362
11.7 高手帶你做——數據分頁顯示 362
11.8 高手帶你做——資料庫事務處理 365
11.9 成長任務 368
第12 章 XML 和JSON 處理
12.1 XML 簡介 370
12.1.1 XML 概述 370
12.1.2 XML 的基本結構 370
12.1.3 XML 聲明 371
12.1.4 XML 實體 371
12.1.5 高手帶你做——創建水果信息XML 檔案 372
12.1.6 命名空間 372
12.2 高手帶你做——生成水果信息XML 檔案 373
12.3 XML 解析器 374
12.3.1 DOM 解析XML 374
12.3.2 SAX 解析XML 377
12.3.3 高手帶你做——SAX 解析XML 檔案 380
12.3.4 SimpleXML 解析XML 382
12.4 高手帶你做——管理報表項目信息 385
12.5 高手帶你做——JavaScript 讀取APP 信息 390
12.6 處理JSON 格式回響 393
12.6.1 JSON 語法 393
12.6.2 編碼JSON 數據 394
12.6.3 解碼JSON 數據 396
12.7 成長任務 397
第13 章 PHP 高級編程技術
13.1 正則表達式語法 400
13.1.1 正則表達式概述 400
13.1.2 Perl 風格的正則表達式 402
13.2 PHP 正則表達式的使用 404
13.2.1 正則表達式函式 404
13.2.2 簡單匹配 405
13.2.3 全局匹配 406
13.2.4 獲取與模式匹配的數組 407
13.2.5 轉義字元 408
13.2.6 搜尋和替換函式 409
13.2.7 分割字元串 410
13.3 高手帶你做——校驗常見數據 411
13.4 錯誤和異常處理 413
13.4.1 PHP 錯誤級別 413
13.4.2 配置檔案選項 414
13.4.3 內置處理函式 415
13.4.4 異常處理語句 419
13.4.5 高手帶你做——自定義
異常類 421
13.5 Ajax 異步通信 422
13.5.1 Ajax 簡介 422
13.5.2 XMLHttpRequest 對象簡介 423
13.5.3 高手帶你做——讀取異步
提交的項目信息 425
13.5.4 高手帶你做——讀取用戶列表 429
13.5.5 高手帶你做——處理JSON 431
13.5.6 高手帶你做——Ajax 中文
亂碼解決方案 432
13.6 PHP 開發編程規範 433
13.6.1 項目結構規範 434
13.6.2 程式注釋 434
13.6.3 命名規範 436
13.6.4 代碼編寫規範 437
13.6.5 包含檔案 439
13.7 成長任務 440
第14 章 PHP 設計模式
14.1 認識設計模式 442
14.1.1 設計模式簡介 442
14.1.2 設計模式的理解 442
14.1.3 設計模式的分類 443
14.1.4 為什麼要學習設計模式 444
14.1.5 如何學習設計模式 445
14.1.6 學習設計模式的層次 445
14.1.7 面向對象的設計原則 446
14.2 單例模式 447
14.3 簡單工廠 448
14.4 工廠方法 452
14.5 抽象工廠 454
14.6 適配器模式 455
14.7 外觀模式 457
14.8 觀察者模式 459
14.9 狀態模式 461
14.10 不要過度使用設計模式 464