第1章PHP概述與開發(fā)運(yùn)行環(huán)境搭建/1
1.1PHP概述 1
1.1.1何謂PHP1
1.1.2PHP優(yōu)勢1
1.1.3PHP運(yùn)行環(huán)境2
1.1.4PHP的工作原理3
1.1.5如何學(xué)好PHP編程4
1.2網(wǎng)站與網(wǎng)頁5
1.2.1網(wǎng)站的基本概念5
1.2.2網(wǎng)站常用開發(fā)技術(shù)6
1.3網(wǎng)頁中的HTML6
1.3.1HTML基礎(chǔ)知識(shí)6
1.3.2HTML表單11
1.3.3表單數(shù)據(jù)的接收14
1.4集成開發(fā)環(huán)境搭建15
1.4.1PHP運(yùn)行環(huán)境XAMPP的安裝15
1.4.2PHP開發(fā)常見編輯工具21
1.4.3NetBeans的安裝與使用22
思考與練習(xí)30
第2章PHP語法基礎(chǔ)/32
2.1PHP基本語法32
2.1.1PHP標(biāo)記32
2.1.2編碼規(guī)范33
2.1.3代碼注釋36
2.1.4PHP語句及語句塊38
2.1.5PHP標(biāo)識(shí)符與關(guān)鍵字38
2.1.6PHP大小寫敏感39
2.2PHP常量及預(yù)定義常量39
2.2.1聲明和使用常量40PHP網(wǎng)站開發(fā)與設(shè)計(jì)目錄2.2.2預(yù)定義常量41
2.3PHP變量43
2.3.1聲明變量 43
2.3.2變量賦值43
2.3.3可變變量45
2.3.4外部變量45
2.3.5變量或常量數(shù)據(jù)類型查看函數(shù)46
2.4PHP數(shù)據(jù)類型48
2.4.1標(biāo)量數(shù)據(jù)類型48
2.4.2復(fù)合數(shù)據(jù)類型52
2.4.3特殊數(shù)據(jù)類型54
2.4.4偽類型55
2.4.5轉(zhuǎn)換數(shù)據(jù)類型56
2.4.6檢測數(shù)據(jù)類型58
2.4.7PHP數(shù)據(jù)的輸出59
2.5PHP運(yùn)算符60
2.5.1算術(shù)運(yùn)算符61
2.5.2字符串運(yùn)算符61
2.5.3賦值運(yùn)算符62
2.5.4自增或自減運(yùn)算符63
2.5.5邏輯運(yùn)算符63
2.5.6比較運(yùn)算符64
2.5.7條件運(yùn)算符65
2.5.8NULL合并運(yùn)算符66
2.5.9組合比較運(yùn)算符66
2.5.10位運(yùn)算符66
2.5.11錯(cuò)誤控制運(yùn)算符67
2.5.12運(yùn)算符的使用規(guī)則67
2.6表達(dá)式與語句68
思考與練習(xí)68
第3章PHP流程控制語句/71
3.1PHP的3種控制結(jié)構(gòu) 71
3.1.1順序結(jié)構(gòu)71
3.1.2選擇結(jié)構(gòu)72
3.1.3循環(huán)結(jié)構(gòu)72
3.2條件控制語句73
3.2.1if條件控制語句73
3.2.2switch多分支語句76
3.3循環(huán)控制語句78
3.3.1while循環(huán)語句78
3.3.2do…while循環(huán)語句79
3.3.3for循環(huán)語句80
3.3.4foreach循環(huán)語句82
3.4跳轉(zhuǎn)語句83
3.4.1break跳轉(zhuǎn)語句83
3.4.2continue跳轉(zhuǎn)語句84
3.4.3return語句85
3.4.4exit語句85
3.5PHP文件間包含86
3.5.1include()函數(shù)86
3.5.2include()函數(shù)和require()函數(shù)的區(qū)別87
3.5.3include_once()函數(shù)88
思考與練習(xí)90
第4章PHP函數(shù)/91
4.1函數(shù)91
4.1.1定義和調(diào)用函數(shù)91
4.1.2在函數(shù)間傳遞參數(shù)92
4.1.3從函數(shù)中返回值94
4.1.4變量函數(shù)94
4.1.5對函數(shù)的引用95
4.1.6取消引用96
4.1.7變量作用域96
4.1.8函數(shù)的高級調(diào)用98
4.2PHP變量函數(shù)庫102
4.3字符串與PHP字符串函數(shù)庫104
4.3.1初識(shí)字符串104
4.3.2去掉字符串首尾空格和特殊字符104
4.3.3截取字符串105
4.3.4分隔、合成字符串106
4.3.5MD5加密函數(shù)107
4.4PHP日期和時(shí)間函數(shù)庫108
4.4.1系統(tǒng)時(shí)區(qū)設(shè)置108
4.4.2格式化日期和時(shí)間109
4.4.3獲取日期和時(shí)間信息109
4.5正則表達(dá)式與相關(guān)函數(shù)110
4.5.1正則表達(dá)式的基本知識(shí)110
4.5.2正則表達(dá)式在PHP中的應(yīng)用114
4.5.3正則表達(dá)式在JavaScript中的應(yīng)用119
4.5.4正則表達(dá)式的其他特性120
思考與練習(xí)121
第5章PHP數(shù)組應(yīng)用/124
5.1數(shù)組的基本概念124
5.1.1為什么引入數(shù)組124
5.1.2數(shù)組的概念125
5.1.3數(shù)組的類型125
5.2聲明數(shù)組126
5.2.1用戶創(chuàng)建數(shù)組126
5.2.2函數(shù)創(chuàng)建數(shù)組127
5.2.3創(chuàng)建二維數(shù)組128
5.3數(shù)組遍歷與輸出129
5.3.1訪問數(shù)組元素129
5.3.2數(shù)組遍歷方式131
5.3.3通過數(shù)組指針遍歷數(shù)組134
5.3.4數(shù)組元素輸出136
5.4數(shù)組的處理函數(shù)136
5.4.1獲取數(shù)組中的最后一個(gè)元素136
5.4.2刪除數(shù)組中的重復(fù)元素136
5.4.3獲取數(shù)組中指定元素的鍵名 137
5.4.4數(shù)組鍵與值的排序138
5.4.5字符串與數(shù)組的轉(zhuǎn)換139
5.5預(yù)定義數(shù)組140
5.5.1服務(wù)器變量: $_SERVER140
5.5.2環(huán)境變量: $_ENV140
5.5.3URL GET變量: $_GET140
5.5.4HTTP POST變量: $_POST141
5.5.5Request變量: $_REQUEST142
5.5.6HTTP文件上傳變量: $_FILES142
5.5.7HTTP Cookie變量: $_COOKIE143
5.5.8Session變量: $_SESSION144
5.5.9Global變量: $GLOBALS144
思考與練習(xí)145
第6章Web互動(dòng)與會(huì)話技術(shù)/147
6.1Web服務(wù)器交互原理147
6.2頁面間的參數(shù)傳遞方式147
6.3瀏覽器端數(shù)據(jù)提交方式148
6.3.1GET提交方式148
6.3.2POST提交方式149
6.3.3兩種提交方式的比較150
6.3.4PHP獲取表單信息151
6.4在PHP腳本中使用JavaScript編程151
6.4.1JavaScript腳本的使用151
6.4.2數(shù)據(jù)類型和變量152
6.4.3彈出警告對話框152
6.4.4彈出確認(rèn)對話框153
6.4.5document對象153
6.4.6彈出新窗口155
6.5Cookie管理156
6.5.1了解Cookie 156
6.5.2創(chuàng)建Cookie157
6.5.3讀取Cookie158
6.5.4刪除Cookie159
6.5.5Cookie的生命周期160
6.6Session管理160
6.6.1了解Session160
6.6.2創(chuàng)建Session161
6.6.3Session設(shè)置時(shí)間163
6.7Session高級應(yīng)用164
6.7.1Session臨時(shí)文件164
6.7.2Session緩存165
6.8PHP頁面跳轉(zhuǎn)165
6.8.1header()函數(shù)165
6.8.2meta標(biāo)簽166
6.8.3JavaScript腳本166
6.8.4在HTML標(biāo)記中實(shí)現(xiàn)跳轉(zhuǎn)167
思考與練習(xí)167
第7章MySQL數(shù)據(jù)庫/170
7.1MySQL概述170
7.1.1MySQL的特點(diǎn)170
7.1.2SQL和MySQL170
7.2操作MySQL數(shù)據(jù)庫171
7.2.1創(chuàng)建新數(shù)據(jù)庫 171
7.2.2選擇指定數(shù)據(jù)庫171
7.2.3刪除指定數(shù)據(jù)庫 172
7.3操作MySQL數(shù)據(jù)表 172
7.3.1創(chuàng)建一個(gè)表172
7.3.2查看數(shù)據(jù)表結(jié)構(gòu)173
7.3.3修改數(shù)據(jù)表結(jié)構(gòu) 174
7.3.4重命名數(shù)據(jù)表175
7.3.5刪除指定數(shù)據(jù)表 175
7.4操作MySQL數(shù)據(jù)175
7.4.1向數(shù)據(jù)表中添加數(shù)據(jù)175
7.4.2更新數(shù)據(jù)表中數(shù)據(jù)176
7.4.3刪除數(shù)據(jù)表中數(shù)據(jù)176
7.4.4查詢數(shù)據(jù)表中數(shù)據(jù)177
7.5MySQL數(shù)據(jù)類型181
7.5.1數(shù)字類型181
7.5.2字符串類型181
7.5.3日期和時(shí)間類型181
7.6phpMyAdmin圖形化管理工具182
7.6.1管理數(shù)據(jù)庫182
7.6.2管理數(shù)據(jù)表184
7.6.3管理數(shù)據(jù)記錄185
7.6.4導(dǎo)入/導(dǎo)出數(shù)據(jù)190
思考與練習(xí)191
第8章PHP操作MySQL數(shù)據(jù)庫/195
8.1PHP操作MySQL數(shù)據(jù)庫的一般步驟195
8.2PHP顯示MySQL數(shù)據(jù)庫數(shù)據(jù)的函數(shù)應(yīng)用196
8.2.1建立與MySQL數(shù)據(jù)庫服務(wù)器的連接196
8.2.2顯示MySQL數(shù)據(jù)庫中的數(shù)據(jù)198
8.2.3數(shù)據(jù)分頁顯示的原理及實(shí)現(xiàn)208
8.3PHP更新MySQL數(shù)據(jù)庫數(shù)據(jù)的函數(shù)應(yīng)用212
8.3.1從頁面獲取數(shù)據(jù)并插入數(shù)據(jù)庫212
8.3.2根據(jù)表單內(nèi)容修改數(shù)據(jù)庫數(shù)據(jù)214
8.3.3刪除數(shù)據(jù)庫數(shù)據(jù)219
8.4PHP操作MySQL數(shù)據(jù)庫常見錯(cuò)誤及分析221
8.5mysql函數(shù)與mysqli函數(shù)連接數(shù)據(jù)庫的區(qū)別與用法222
思考與練習(xí)223
第9章PHP面向?qū)ο缶幊?225
9.1類與對象225
9.1.1什么是類225
9.1.2對象的由來225
9.1.3面向?qū)ο蟮奶攸c(diǎn)226
9.2類的聲明227
9.2.1類的定義227
9.2.2成員變量227
9.2.3成員方法228
9.3類的實(shí)例化229
9.3.1創(chuàng)建對象229
9.3.2訪問類的成員230
9.3.3特殊的訪問方法——$this和::231
9.3.4構(gòu)造函數(shù)和析構(gòu)函數(shù)233
9.4面向?qū)ο蟮姆庋b性235
9.4.1public關(guān)鍵字235
9.4.2private關(guān)鍵字236
9.4.3protected關(guān)鍵字236
9.4.4靜態(tài)變量與靜態(tài)方法237
9.5面向?qū)ο蟮睦^承性239
9.5.1類的繼承——extends關(guān)鍵字239
9.5.2類的繼承——parent關(guān)鍵字240
9.5.3覆蓋父類方法240
9.5.4final關(guān)鍵字241
9.6抽象類和接口242
9.6.1抽象類242
9.6.2接口244
9.7面向?qū)ο蟮亩鄳B(tài)性246
9.7.1通過繼承實(shí)現(xiàn)多態(tài)246
9.7.2通過接口實(shí)現(xiàn)多態(tài) 247
9.8面向?qū)ο蟮哪g(shù)方法248
9.8.1__set()和__get()方法248
9.8.2__isset()和__unset()方法249
9.8.3__call()方法249
9.8.4__toString()方法250
9.8.5__autoload()方法 251
9.8.6__clone()方法252
9.9兩種常見的設(shè)計(jì)模式253
9.9.1單例模式253
9.9.2工廠模式255
思考與練習(xí)256
第10章基于PDO數(shù)據(jù)庫抽象層/258
10.1什么是PDO258
10.1.1PDO概述258
10.1.2PDO的特點(diǎn)258
10.1.3安裝PDO259
10.2PDO連接數(shù)據(jù)庫259
10.2.1PDO構(gòu)造函數(shù)260
10.2.2DSN詳解260
10.3在PDO中執(zhí)行SQL語句261
10.3.1exec()方法261
10.3.2query()方法262
10.3.3預(yù)處理語句——prepare()和execute()方法263
10.4在PDO中獲取結(jié)果集265
10.4.1fetch()方法265
10.4.2fetchAll()方法267
10.4.3fetchColumn()方法268
10.5在PDO中捕獲SQL語句中的錯(cuò)誤269
10.5.1使用默認(rèn)模式269
10.5.2使用警告模式271
10.5.3使用異常模式272
10.6在PDO中處理錯(cuò)誤275
10.6.1errorCode()方法275
10.6.2errorInfo()方法276
思考與練習(xí)277
第11章PHP與MVC開發(fā)模式/279
11.1什么是MVC模型279
11.2MVC模型的組成280
11.2.1控制器280
11.2.2模型280
11.2.3視圖281
11.3PHP開發(fā)中的模板技術(shù)281
11.3.1模板與模板引擎281
11.3.2在PHP程序中使用模板282
11.3.3Smarty模板引擎的概念284
11.3.4Smarty模板引擎的工作原理284
11.3.5Smarty模板引擎的使用285
11.4常見的基于MVC的PHP開發(fā)框架簡介286
11.4.1CodeIgniter287
11.4.2CakePHP287
11.4.3Zend Framework288
11.4.4FleaPHP288
11.5CodeIgniter框架應(yīng)用289
11.5.1CodeIgniter的技術(shù)特點(diǎn)289
11.5.2安裝CodeIgniter289
11.5.3CodeIgniter的Controller類290
11.5.4CodeIgniter的Model類292
11.5.5CodeIgniter的View類293
11.6ThinkPHP框架的應(yīng)用295
11.6.1ThinkPHP的安裝與項(xiàng)目創(chuàng)建295
11.6.2項(xiàng)目的創(chuàng)建296
11.6.3項(xiàng)目的配置297
11.6.4控制器類的創(chuàng)建297
11.6.5模型類的創(chuàng)建301
11.6.6模板文件的編寫302
11.7ThinkPHP應(yīng)用實(shí)例——在線日程表307
11.7.1數(shù)據(jù)庫的設(shè)計(jì)307
11.7.2模板的設(shè)計(jì)307
11.7.3控制器的實(shí)現(xiàn)309
思考與練習(xí)311
第12章文件和目錄操作/312
12.1文件概述312
12.1.1文件類型312
12.1.2文件的常見屬性313
12.2基本的文件操作315
12.2.1打開文件315
12.2.2讀取文件內(nèi)容317
12.2.3向文件中寫入數(shù)據(jù)321
12.2.4關(guān)閉文件指針323
12.2.5文件的其他操作323
12.3常用目錄操作323
12.3.1打開指定目錄324
12.3.2讀取目錄結(jié)構(gòu)324
12.3.3關(guān)閉目錄指針325
12.4文件上傳處理326
12.4.1相關(guān)設(shè)置326
12.4.2全局變量 $_FILES應(yīng)用326
12.4.3文件上傳與處理函數(shù)327
12.4.4多文件上傳329
12.4.5文件下載330
思考與練習(xí)331
第13章PHP圖形圖像處理/332
13.1了解GD2函數(shù)庫332
13.2設(shè)置GD2函數(shù)庫332
13.3常用的圖像處理333
13.3.1創(chuàng)建畫布333
13.3.2顏色處理334
13.3.3繪制文字335
13.3.4輸出圖像338
13.3.5銷毀圖像339
13.4運(yùn)用Jpgraph類庫繪制圖像340
13.4.1Jpgraph類庫簡介340
13.4.2Jpgraph類庫的安裝340
13.4.3柱狀圖分析產(chǎn)品月銷售量341
13.4.4折線圖分析網(wǎng)站一天內(nèi)的訪問走勢342
13.4.53D餅狀圖展示不同月份的業(yè)績344
思考與練習(xí)345
第14章程序調(diào)試與錯(cuò)誤處理/346
14.1程序調(diào)試的基本流程346
14.2常見錯(cuò)誤類型347
14.2.1語法錯(cuò)誤347
14.2.2語義錯(cuò)誤349
14.2.3邏輯錯(cuò)誤349
14.2.4注釋錯(cuò)誤350
14.2.5運(yùn)行錯(cuò)誤350
14.3錯(cuò)誤處理機(jī)制351
14.3.1控制錯(cuò)誤顯示及顯示方式351
14.3.2控制錯(cuò)誤級別351
14.4常用程序調(diào)試方法352
14.4.1應(yīng)用die()函數(shù)進(jìn)行調(diào)試352
14.4.2應(yīng)用mysql_error()函數(shù)輸出SQL語句的錯(cuò)誤353
14.4.3應(yīng)用try…catch語句拋出并捕獲異常354
14.5錯(cuò)誤處理技巧355
14.5.1用“@”符號(hào)隱藏錯(cuò)誤355
14.5.2自定義錯(cuò)誤信息356
思考與練習(xí)356
參考文獻(xiàn)/358