第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獲取SessionID………………318
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.2mysqli_result類………………349
11.4.3fetch_row()方法………………350
11.4.4fetch_assoc()方法……………351
11.4.5fetch_array()方法……………352
11.4.6fetch_object()方法……………353
11.4.7獲取數據列的信息……………354
11.4.8一次執行多條SQL命令……355
11.5使用預處理語句……………………357
11.5.1mysqli_stmt類………………357
11.5.2綁定參數預處理語句…………358
11.5.3綁定結果預處理語句…………360
11.6讀取數據庫顯示亂碼解決方案……361
11.6.1了解產生亂碼的原因…………361
11.6.2PHP網頁的編碼………………361
11.6.3MySQL數據庫的編碼………362
11.7高手帶你做——數據分頁顯示……362
11.8高手帶你做——數據庫事務處理…365
11.9成長任務……………………………368
第12章XML和JSON處理
12.1XML簡介…………………………370
12.1.1XML概述……………………370
12.1.2XML的基本結構……………370
12.1.3XML聲明……………………371
12.1.4XML實體……………………371
12.1.5高手帶你做——創建水果
信息XML文件………………372
12.1.6命名空間………………………372
12.2高手帶你做——生成水果信息
XML文件……………………………373
12.3XML解析器…………………………374
12.3.1DOM解析XML………………374
12.3.2SAX解析XML………………377
12.3.3高手帶你做——SAX解析
XML文件……………………380
12.3.4SimpleXML解析XML………382
12.4高手帶你做——管理報表項目信息…385
12.5高手帶你做——JavaScript讀取
APP信息……………………………390
12.6處理JSON格式響應………………393
12.6.1JSON語法……………………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.2Perl風格的正則表達式………402
13.2PHP正則表達式的使用……………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.1PHP錯誤級別…………………413
13.4.2配置文件選項…………………414
13.4.3內置處理函數…………………415
13.4.4異常處理語句…………………419
13.4.5高手帶你做——自定義
異常類…………………………421
13.5Ajax異步通信………………………422
13.5.1Ajax簡介……………………422
13.5.2XMLHttpRequest對象簡介……423
13.5.3高手帶你做——讀取異步
提交的項目信息………………425
13.5.4高手帶你做——讀取用戶列表…429
13.5.5高手帶你做——處理JSON…431
13.5.6高手帶你做——Ajax中文
亂碼解決方案…………………432
13.6PHP開發編程規范…………………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