圖書簡介
本書詳細介紹了PHP的腳本語言基礎、運行環境和PHP面向對象編程(包括MySQL資料庫)的知識。
全書共19章,內容分為理論部分和實戰部分。理論部分包括PHP技術概述和基本語法、字元串和正則表達式、數組和函式、檔案和目錄操作、PHP的異常處理機制、XML檔案操作、Session和Cookie會話管理、Smarty模板引擎、Ajax技術和MySQL資料庫。實戰部分包括線上投票系統、會員管理系統和新聞發布系統三個完整的示例。
本書注重將理論講解與工程套用結合起來,選擇的案例是作者實踐的結晶,能提高讀者學習的積極性和效率,通過學習這些案例,讀者能夠掌握本書的精髓,並可以直接套用到動態網站的實際開發中。
本書內容豐富,語言講解詳細準確,操作性強,適合學習動態網頁製作的初級讀者,也適合作為高等院校本、專科各專業動態網頁製作課程的教材,還可以作為網頁設計與製作愛好者的自學參考書。
目錄
第1章PHP概述 1
1.1PHP簡介 1
1.1.1PHP代碼形式介紹 1
1.1.2PHP能做什麼 2
1.2PHP的發展歷史 3
1.3PHP的先進之處 5
1.4PHP5的新特性 5
1.4.1PHP4的局限 5
1.4.2Zend2.0開始開發 6
1.4.3PHP5的性能 6
1.5PHP5與動態網站的構建 13
1.6PHP編輯工具介紹 15
1.7本章小結 17
第2章搭建PHP5的開發環境 18
2.1搭建PHP開發環境 18
2.1.1軟體準備 18
2.1.2Apache伺服器的安裝
和配置 19
2.1.3PHP的安裝和配置 21
2.1.4MySQL的安裝 22
2.1.5PEAR的安裝 26
2.1.6phpMyAdmin的安裝 28
2.1.7運行環境測試 29
2.1.8其他平台上的配置 29
2.2站點設定 33
2.2.1單站點設定 33
2.2.2多站點設定 34
2.3PHP的HelloWorld預覽 35
2.4PHP幫助文檔的使用 36
2.5本章小結 37
第3章PHP的基本語法 38
3.1程式設計規範 38
3.1.1注釋的使用 38
3.1.2PHP中的命名規則 40
3.2PHP的數據類型 40
3.2.1布爾型(Boolean)與NULL 40
3.2.2字元串(String) 41
3.2.3整型(integer) 43
3.2.4浮點型(Double/Float) 44
3.2.5數組(Array) 45
3.2.6對象(Object) 45
3.3運算符和關鍵字 46
3.3.1算術運算符 46
3.3.2字元串運算符 47
3.3.3賦值運算符 47
3.3.4比較運算符 48
3.3.5邏輯運算符 49
3.3.6位運算符 49
3.3.7自增與自減運算符 50
3.3.8PHP的關鍵字 50
3.4條件語句 51
3.4.1if-else語句 51
3.4.2switch語句 53
3.4.3三元條件語句 55
3.5循環語句 55
3.5.1for循環 55
3.5.2while循環 59
3.5.3do-while循環 60
3.5.4foreach循環 62
3.5.5break與continue 65
3.5.6實例:九九乘法口訣表的
列印 65
3.6本章小結 67
第4章PHP字元串操作與正則表達式 68
4.1字元串的定義 68
4.2字元串的格式化 68
4.2.1字元串整理:chop()、ltrim()
和trim() 69
4.2.2addslashes()和stripslashes() 70
4.2.3字元串的大小寫轉換 70
4.3字元串的連線和分割 71
4.3.1使用explode()、implode()
和join() 71
4.3.2使用strtok()函式 73
4.3.3使用substr()函式 73
4.4字元串的比較 74
4.4.1字元串的排序:strcmp()、
strcasecmp()和strnatcmp() 74
4.4.2獲取字元串長度 75
4.5字元串的查找和替換 75
4.5.1字元串的查找:strstr()、
stristr()和strrchr() 75
4.5.2查找子字元串的位置:
strpos()、strrpos() 76
4.5.3字元串的替換:str_replace()、
substr_replace() 77
4.6字元串的加密和編碼 79
4.6.1字元串的MD5加密 79
4.6.2字元串的編碼 79
4.7正則表達式簡介 80
4.7.1普通字元 81
4.7.2非列印字元 81
4.7.3特殊字元 81
4.7.4限定符 82
4.7.5定位符 83
4.7.6選擇 83
4.7.7後向引用 83
4.7.8幾個正則表達式匹配的例子 83
4.7.9常用的正則表達式 84
4.7.10其他注意事項 85
4.8PHP的正則表達式操作 85
4.8.1獲得與模式匹配的數組單元:
preg_grep 85
4.8.2進行全局正則表達式的匹配:
preg_match_all 86
4.8.3進行正則表達式的匹配:
preg_match 86
4.8.4轉義正則表達式字元:
preg_quote 87
4.8.5執行正則表達式的搜尋和
替換函式:preg_replace 87
4.8.6通過回調函式執行正則
表達式的搜尋和替換——
preg_replace_callback 88
4.8.7用正則表達式進行字元串
分割preg_split 89
4.9正則表達式的Web驗證套用 89
4.9.1電子郵件地址的校驗 89
4.9.2多位元組字元的校驗 90
4.9.3URL地址的校驗 90
4.9.4電話號碼和郵政編碼的
校驗 90
4.10本章小結 91
第5章數組 92
5.1數組基礎 92
5.1.1什麼是數組 92
5.1.2創建數組 92
5.1.3引用數組元素 93
5.1.4一維數組和二維數組 95
5.2運算元組 95
5.2.1遍歷數組 95
5.2.2修改數組 98
5.2.3遞增排序:sort 100
5.2.4遞減排序:rsort 102
5.2.5隨機排序 103
5.3數組的其他常用操作 104
5.3.1順序查找 104
5.3.2加總數組中的值 106
5.3.3線性表的入棧與出棧 107
5.3.4數組的合併 108
5.3.5數組的拆分 109
5.3.6取數組元素的最值 110
5.4本章小結 111
第6章函式 112
6.1自定義函式 112
6.1.1聲明函式 112
6.1.2函式的調用 112
6.1.3函式傳值 113
6.1.4函式的返回值 114
6.1.5變數的作用域 116
6.1.6檢測函式是否可用 117
6.2常用數學函式概述 117
6.2.1取絕對值 117
6.2.2產生隨機數 118
6.2.3獲取整數部分 118
6.2.4數字格式化 119
6.2.5對浮點數進行四捨五入 119
6.3日期時間函式 120
6.3.1獲取系統日期和時間 120
6.3.2格式化日期 121
6.3.3其他常用日期函式 123
6.4對象函式 123
6.4.1獲取對象的類名稱 123
6.4.2獲取對象的方法名稱 124
6.4.3判斷類是否已定義 124
6.4.4判斷對象的方法是否存在 125
6.5本章小結 125
第7章構建PHP動態網頁 126
7.1Web表單及其常用元素簡介 126
7.1.1表單標記form 126
7.1.2輸入標記input與文本框 127
7.1.3按鈕 128
7.1.4單選按鈕與複選框 129
7.1.5多行文本區標記textarea
及FCKeditor簡介 130
7.1.6下拉框與列表框標記
select 131
7.1.7在Web頁面中嵌入PHP
代碼 132
7.2PHP獲取Web表單數據 132
7.2.1GET方法和POST方法 133
7.2.2PHP接收表單數據 135
7.2.3PHP獲取環境變數 138
7.2.4PHP獲取URL參數 140
7.3動態網頁中常用的JavaScript
驗證 140
7.3.1姓名驗證 141
7.3.2日期驗證 141
7.3.3E-mail地址驗證 142
7.3.4密碼欄位的驗證 142
7.3.5改進的用戶信息輸入程式 142
7.4動態網頁中常用的URL編碼
解碼函式 146
7.4.1字元串編碼:urlencode 146
7.4.2解碼字元串:urldecode 147
7.5本章小結 147
第8章PHP5的面向對象程式設計 148
8.1面向對象的概念 148
8.1.1什麼是類 148
8.1.2什麼是對象 148
8.1.3類和對象的關係 149
8.2PHP5中的類和對象 149
8.2.1類的創建 149
8.2.2定義類的屬性 150
8.2.3定義類的方法 150
8.2.4對象的創建 151
8.2.5$this關鍵字 151
8.2.6構造函式 154
8.2.7析構函式 154
8.2.8對象的比較 156
8.2.9對象的克隆 158
8.3類的繼承 159
8.3.1關於繼承 159
8.3.2PHP5中類的繼承 160
8.3.3私有變數和方法不被繼承 160
8.3.4繼承的簡單例子 160
8.3.5訪問控制 162
8.3.6parent關鍵字 165
8.4類的接口 167
8.4.1接口的定義 167
8.4.2實現接口 169
8.4.3多態性 173
8.4.4instanceof運算符 175
8.5本章小結 176
第9章檔案和目錄系統 177
9.1讀寫檔案 177
9.1.1打開檔案fopen 177
9.1.2寫入檔案fwrite 178
9.1.3讀取檔案fread 178
9.1.4關閉檔案fclose 179
9.1.5其他幾個操作 180
9.1.6示例:讀取文本檔案內容 181
9.2檔案信息 182
9.2.1判斷檔案是否存在 182
9.2.2獲取檔案長度 182
9.2.3獲取檔案許可權 182
9.2.4修改檔案許可權 183
9.3目錄操作 184
9.3.1判斷指定目錄是否
存在is_dir 184
9.3.2創建目錄mkdir 184
9.3.3刪除目錄rmdir 184
9.3.4顯示指定目錄信息
arraypathinfo 184
9.4綜合示例:PHP實現Web套用
程式的檔案管理 184
9.4.1獲取指定磁碟信息 185
9.4.2判斷指定檔案或者目錄
是否存在 185
9.4.3搜尋指定目錄下的檔案 185
9.4.4搜尋指定目錄下子目錄 186
9.4.5顯示檔案和子目錄 187
9.5綜合示例:在Web應用程式中實現
檔案上傳 189
9.5.1以POST方法上傳檔案 189
9.5.2上傳多個檔案 190
9.5.3檔案MIME類型 191
9.6本章小結 192
第10章異常處理 193
10.1以往的異常處理辦法 193
10.1.1通過php.ini配置程式
輸出錯誤信息 193
10.1.2使用die()來終止程式
運行 195
10.1.3使用trigger_error()顯示
自定義警告信息 196
10.1.4隨時判斷錯誤標識 198
10.1.5使用PEAR擴展類庫
處理異常 201
10.2PHP5中的異常處理 203
10.2.1異常類Exception 203
10.2.2異常拋出關鍵字throw 205
10.2.3異常捕獲try-catch語句 205
10.2.4異常處理函式設定
set_exception_handler 207
10.2.5完整的異常信息 207
10.3擴展的異常處理類 210
10.4異常的傳遞與重擲 212
10.5正確使用異常處理 213
10.6本章小結 214
第11章XML檔案操作 215
11.1XML簡介 215
11.1.1什麼是XML 215
11.1.2XML的特點 216
11.1.3XML和HTML的區別及
語法要求 217
11.2簡單的XML操作 218
11.2.1創建一個SimpleXML
對象 220
11.2.2讀取SimpleXML對象中的
XML數據 221
11.2.3XML數據的修改 222
11.2.4XML數據的存儲 223
11.3XML文檔的動態創建 224
11.4XML套用示例:留言本 226
11.4.1XML檔案結構設計 226
11.4.2提交頁面的編寫 226
11.4.3顯示頁面的編寫 229
11.5本章小結 231
第12章PHP5的會話管理 232
12.1Session與會話管理 232
12.1.1Session概念 232
12.1.2使用Session 233
12.1.3設定Session生命周期 233
12.1.4註冊Session 233
12.1.5刪除Session 235
12.1.6Session在動態網站中的套用
舉例:用戶登錄驗證 235
12.2Cookie與會話管理 237
12.2.1Cookie概念 238
12.2.2Cookie的優缺點 238
12.2.3設定Cookie 240
12.2.4接收和處理Cookie 240
13.2.5刪除Cookie 241
12.2.6使用Cookie的限制 241
12.2.7Cookie在動態網站中的套用
舉例:簡單購物車的實現 241
12.3本章小結 246
第13章PHP5與MySQL 248
13.1MySQL資料庫 248
13.1.1MySQL資料庫簡介 248
13.1.2MySQL數據組織 249
13.1.3MySQL數據類型 249
13.2SQL句法簡介 251
13.2.1資料庫的創建及刪除 251
13.2.2表的創建、刪除及更名 252
13.2.3記錄的增加 253
13.2.4記錄的刪除 254
13.2.5記錄的查詢 255
13.2.6記錄的修改 256
13.3MySQL運算符 257
13.3.1算數運算符 258
13.3.2比較運算符 258
13.3.3邏輯運算符 260
13.3.4位運算符 260
13.4MySQL函式 261
13.4.1數學函式 261
13.4.2字元串函式 262
13.4.3日期和時間函式 264
13.4.4加密函式 267
13.4.5控制流函式 268
13.4.6與GROUPBY子句同時
使用的函式 269
13.5PHP5操作MySQL資料庫 269
13.5.1建立PHP5與MySQL
資料庫的連線 269
13.5.2選擇查詢要作用的MySQL
資料庫 270
13.5.3建立MySQL查詢 270
13.5.4獲取記錄 270
13.5.5查詢實例:在表單中顯示
查詢結果 271
13.5.6修改數據 274
13.5.7添加數據 276
13.5.8獲取資料庫信息 279
13.6示例:資料庫操作類的實現
與套用 279
13.6.1創建類 279
13.6.2聲明類變數 279
13.6.3連線資料庫 279
13.6.4設定運算元據庫行為 280
13.6.5聲明類的對象變數 282
13.6.6使用類的屬性和行為 282
13.6.7具體操作 282
13.7本章小結 283
第14章MySQL的高級套用 284
14.1MySQL與存儲過程 284
14.1.1存儲過程的創建 284
14.1.2存儲過程的參數 285
14.1.3複合語句 287
14.1.4變數 287
14.1.5條件語句 288
14.1.6循環語句 288
14.1.7存儲過程的查看、更改
和刪除 289
14.1.8PHP5調用存儲過程 290
14.2MySQL與觸發器 290
14.2.1觸發器的創建與觸發 290
14.2.2查看已創建的觸發器 292
14.2.3觸發器的刪除 292
14.3MySQL與視圖 292
14.3.1視圖的本質 292
14.3.2視圖的創建 293
14.3.3視圖的查看、修改
和刪除 294
14.3.4視圖的套用 294
14.4本章小結 299
第15章Smarty模板引擎 300
15.1Smarty簡介 300
15.1.1什麼是Smarty 300
15.1.2Smarty的優點 300
15.2Smarty的安裝與配置 301
15.2.1Smarty的安裝 301
15.2.2Smarty的配置 301
15.3Smarty基本語法 303
15.3.1Smarty中的使用注釋 303
15.3.2函式 303
15.3.3常量與變數的使用 306
15.3.4配置檔案 311
15.3.5$smarty保留變數 313
15.3.6變數調節器 313
15.3.7組合變數調節器 315
15.3.8循環方法 316
15.3.9條件判斷 320
15.3.10比較運算 321
15.3.11包含檔案 322
15.3.12獲取輸出內容 323
15.4本章小結 325
第16章Ajax技術 326
16.1Ajax概述 326
16.1.1Ajax簡介 327
16.1.2Ajax工作原理 328
16.1.3為什麼使用Ajax 329
16.2Ajax用到的核心技術 329
16.2.1XMLHttpRequest對象 332
16.2.2JavaScript語言 333
16.2.3DOM技術 334
16.2.4XML 334
16.3XMLHttpRequest對象 336
16.3.1對象初始化 336
16.3.2指定回響處理函式 337
16.3.3發出HTTP請求 338
16.3.4處理伺服器返回的信息 340
16.3.5初步開發框架 341
16.4Prototype框架 342
16.4.1Prototype簡介 342
16.4.2常用函式 342
16.5Prototype對Ajax的支持 346
16.5.1AjaxOptions選項 346
16.5.2Ajax.PeriodicalUpdater類 348
16.5.3Ajax.Request類 348
16.5.4Ajax.Responders類 349
16.5.5Ajax.Updater類 351
16.6Prototype對象參考 351
16.6.1Array對象 351
16.6.2Class對象 352
16.6.3Date對象 352
16.6.4Form對象 352
16.7PHP5與Prototype在動態網站中的
套用舉例 353
16.7.1登錄界面 353
16.7.2伺服器端代碼 354
16.7.3JavaScript控制 354
16.8本章小結 355
第17章開發示例:線上投票系統 356
17.1系統需求分析 356
17.1.1資料庫方面 356
17.1.2訪客投票的實現 356
17.1.3投票項目的新增、修改
和刪除 356
17.1.4調查的統計分析結果 358
17.1.5預防投票作弊 358
17.1.6發布一個投票調查 358
17.2MySQL資料庫設計 358
17.3投票界面 359
17.4伺服器端腳本代碼 361
17.4.1資料庫連線公共檔案 361
17.4.2投票項目的新增、修改
和刪除 361
17.4.3簡版投票腳本 366
17.4.4完整顯示投票項目腳本 367
17.4.5投票處理腳本 368
17.4.6新註冊用戶確認處理 372
17.4.7發布投票 373
17.4.8投票統計結果 375
17.5本章小結 376
第18章開發示例:會員管理系統 377
18.1系統需求分析 377
18.2系統預覽 377
18.3MySQL資料庫設計 381
18.4系統公共檔案實現 382
18.4.1MySQL資料庫基類 382
18.4.2Smarty模板基類 382
18.4.3Ajax公共腳本檔案 382
18.4.4inc.php公共檔案 383
18.4.5main.css樣式表公共檔案 383
18.4.6所有頁面的頭部、左側目錄
公共模板檔案 386
18.5會員管理系統首頁實現 387
18.6用戶註冊頁面的實現 387
18.7用戶登錄頁面的實現 391
18.8編輯用戶信息頁面實現 392
18.9用戶照片上傳頁面的實現 394
18.10用戶註銷登錄頁面 396
18.11會員列表頁面 396
18.12PHP程式腳本 401
18.13本章小結 406
第19章開發示例:新聞發布系統 407
19.1系統需求分析 407
19.2系統預覽 407
19.3MySQL資料庫設計 412
19.4系統公共檔案實現 412
19.4.1MySQL資料庫基類 412
19.4.2Smarty模板基類 412
19.4.3FCKeditor所見即所得
基類 412
19.4.4Ajax公共腳本檔案 413
19.4.5inc.php公共檔案 413
19.4.6main.css樣式表公共檔案 413
19.4.7後台頁面的頭部、底部公共
模板檔案 420
19.4.8後台頁面動態生成下拉框
所用的js檔案 421
19.4.9欄目目錄、新聞業務
基類 422
19.5新聞發布系統首頁的實現 428
19.6新聞欄目列表頁面的實現 431
19.7新聞詳細顯示頁面 433
19.8後台管理頁面的實現 435
19.9Ajax傳值實現 441
19.10本章小結 442
附錄A正則表達式中元字元的行為 443