本書以PHP 7為平臺。全書由4部分組成,涵蓋理論和實踐教學(xué)的全過程。第1部分“實用教程”介紹PHP、HTML+CSS基礎(chǔ)知識、PHP環(huán)境與開發(fā)入門、PHP基礎(chǔ)語法、PHP數(shù)組與字符串、PHP常用功能模塊、PHP面向?qū)ο蟪绦蛟O(shè)計、構(gòu)建PHP互動網(wǎng)頁、數(shù)據(jù)庫基礎(chǔ)、使用PHP擴(kuò)展函數(shù)庫操作數(shù)據(jù)庫、使用PDO通用接口操作數(shù)據(jù)庫、PHP與AJAX等內(nèi)容;第2部分“實訓(xùn)”選擇教程中有代表性的實例讓讀者先試做,然后提出要求,讓讀者參照書中的例子自己設(shè)計開發(fā)新功能,循序漸進(jìn)地訓(xùn)練、增強(qiáng)讀者的動手能力;第3部分“綜合應(yīng)用實訓(xùn)—PHP/MySQL學(xué)生成績管理系統(tǒng)”介紹一個基于流行ThinkPHP 框架開發(fā)的學(xué)生成績管理系統(tǒng),以培養(yǎng)讀者運用PHP解決實際問題的能力;第4部分“附錄”由附錄A“PHP程序調(diào)試與異常處理”和附錄B“PHP+HTML混合非框架學(xué)生成績管理系統(tǒng)”組成。本書配有電子課件、書中所有實例程序源代碼、綜合應(yīng)用實訓(xùn)項目工程源文件,讀者均可從華信教育資源網(wǎng)免費下載。書中所有實例程序均已上機(jī)調(diào)試通過。本書既可作為大學(xué)本科和高職高專相關(guān)課程教材與教學(xué)參考書,也可供從事PHP應(yīng)用系統(tǒng)開發(fā)的人員學(xué)習(xí)和參考。
鄭阿奇,南京師范大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,副教授,江蘇省計算機(jī)學(xué)會高級會員。曾獲江蘇省教學(xué)二等獎成果獎2項,全國高校出版社暢銷圖書二等獎、江蘇省科技進(jìn)步四等獎、江蘇省暢銷圖書編輯二等獎、江蘇省優(yōu)秀軟件獎、教育部優(yōu)秀教程二等獎等。出版圖書多部。
第1部分 實 用 教 程
第1章 PHP、HTML+CSS基礎(chǔ)知識 1
1.1 PHP和HTML簡介 1
1.1.1 PHP 1
1.1.2 HTML+CSS+JavaScript 3
1.1.3 HTML基本結(jié)構(gòu) 3
1.2 HTML基礎(chǔ) 5
1.2.1 基本描述 6
1.2.2 設(shè)置文本格式 7
1.2.3 多媒體標(biāo)記 10
1.2.4 表格的設(shè)置 11
1.2.5 畫布 13
1.3 表單 15
1.3.1 表單標(biāo)記 15
1.3.2 表單輸入控件 16
1.3.3 其他表單控件 19
1.4 超鏈接 22
1.5 框架 23
1.6 HTML 5高級功能 26
1.7 層疊樣式表CSS 26
1.7.1 樣式表定義 26
1.7.2 樣式的繼承和作用順序 30
1.7.3 CSS 3新特性 30
1.7.4 HTML 5+CSS 3 31
習(xí)題1 32
第2章 PHP環(huán)境與開發(fā)入門 34
2.1 PHP環(huán)境搭建 34
2.1.1 組件的選擇 34
2.1.2 操作系統(tǒng)準(zhǔn)備 34
2.1.3 安裝Apache服務(wù)器 36
2.1.4 安裝PHP 37
2.1.5 安裝MySQL數(shù)據(jù)庫 39
2.1.6 安裝Eclipse開發(fā)工具 43
2.2 PHP運行環(huán)境測試 46
2.2.1 PHP項目與程序運行 46
2.2.2 最簡單的PHP程序 49
2.2.3 同一頁面上的PHP交互 50
2.2.4 不同頁面上的PHP交互 51
2.3 基于模板的程序開發(fā) 52
2.3.1 安裝配置Smarty 52
2.3.2 實例——顯示和錄入學(xué)生成績 53
2.4 PHP集成環(huán)境 55
2.4.1 phpStudy集成環(huán)境 55
2.4.2 WampServer集成環(huán)境 57
2.5 PHP項目遷移 59
習(xí)題2 61
第3章 PHP基礎(chǔ)語法 62
3.1 PHP語法入門 62
3.1.1 PHP標(biāo)記風(fēng)格 62
3.1.2 PHP程序注釋 63
3.1.3 PHP頁面輸出 63
3.1.4 HTML嵌入PHP 63
3.1.5 PHP使用JavaScript 64
3.2 數(shù)據(jù)類型 65
3.2.1 整型 65
3.2.2 浮點型 65
3.2.3 字符串 66
3.2.4 布爾型 68
3.2.5 數(shù)組和對象 68
3.2.6 空類型 69
3.2.7 資源型 69
3.2.8 偽類型 69
3.2.9 類型轉(zhuǎn)換 70
3.3 變量與常量 71
3.3.1 自定義變量 71
3.3.2 可變變量 74
3.3.3 預(yù)定義變量 75
3.3.4 外部變量 76
3.3.5 常量 78
3.4 運算符與表達(dá)式 79
3.4.1 算術(shù)運算符 80
3.4.2 賦值運算符 80
3.4.3 位運算符 81
3.4.4 比較運算符 81
3.4.5 錯誤控制運算符 82
3.4.6 執(zhí)行運算符 82
3.4.7 遞增/遞減運算符 82
3.4.8 邏輯運算符 83
3.4.9 字符串運算符 84
3.4.10 數(shù)組運算符和類型運算符 84
3.4.11 運算符優(yōu)先級和結(jié)合性 85
3.4.12 表達(dá)式 85
3.5 程序流程控制 86
3.5.1 條件控制語句 86
3.5.2 循環(huán)控制語句 90
3.5.3 流程控制符 93
3.5.4 流程控制的替代語法 95
3.5.5 包含文件操作 96
3.5.6 declare結(jié)構(gòu) 97
3.6 PHP函數(shù) 97
3.6.1 用戶自定義函數(shù) 98
3.6.2 參數(shù)的傳遞 98
3.6.3 函數(shù)變量的作用域 99
3.6.4 函數(shù)的返回值 99
3.6.5 函數(shù)的調(diào)用 100
3.6.6 遞歸函數(shù) 101
3.6.7 變量函數(shù) 101
3.6.8 系統(tǒng)函數(shù) 101
3.6.9 匿名函數(shù) 102
3.7 綜合實例 102
3.7.1 實例—多項選擇題 102
3.7.2 實例—計算器程序 103
習(xí)題3 104
第4章 PHP數(shù)組與字符串 107
4.1 數(shù)組及處理 107
4.1.1 數(shù)組的創(chuàng)建和初始化 107
4.1.2 鍵名和值的操作 110
4.1.3 數(shù)組的遍歷和輸出 113
4.1.4 數(shù)組的排序 115
4.1.5 數(shù)組的集合操作 119
4.1.6 其他操作 120
4.1.7 PHP 5.4之后版本新增特性 121
4.1.8 實例—處理表格數(shù)據(jù) 123
4.2 字符串操作 125
4.2.1 字符串的定義與顯示 125
4.2.2 字符串的格式化 125
4.2.3 常用的字符串函數(shù) 126
4.2.4 字符串的比較 127
4.2.5 字符串的替換 128
4.2.6 字符串與HTML 129
4.2.7 其他字符串函數(shù) 130
4.2.8 實例—留言簿內(nèi)容處理 131
4.3 正則表達(dá)式 133
4.3.1 基礎(chǔ)知識 133
4.3.2 PHP中正則表達(dá)式的應(yīng)用 136
4.3.3 實例—驗證表單內(nèi)容 139
習(xí)題4 140
第5章 PHP常用功能模塊 143
5.1 目錄與文件操作 143
5.1.1 目錄操作 143
5.1.2 文件的打開與關(guān)閉 145
5.1.3 文件的寫入 147
5.1.4 文件的讀取 148
5.1.5 文件的上傳與下載 153
5.1.6 其他常用文件函數(shù) 156
5.1.7 實例—投票統(tǒng)計 158
5.2 圖形處理 160
5.2.1 安裝PHP圖像庫 160
5.2.2 創(chuàng)建圖形 160
5.2.3 繪制圖形 163
5.2.4 圖形的處理 171
5.2.5 其他的圖形函數(shù) 174
5.2.6 實例—自動生成驗證碼 175
5.3 日期和時間 177
5.3.1 UNIX時間戳 177
5.3.2 時間轉(zhuǎn)換為時間戳 177
5.3.3 獲取日期和時間 178
5.3.4 其他日期和時間函數(shù) 180
5.3.5 實例—生成日歷 181
習(xí)題5 182
第6章 PHP面向?qū)ο蟪绦蛟O(shè)計 184
6.1 基本概念 184
6.2 PHP中的類 185
6.2.1 創(chuàng)建類 185
6.2.2 類的屬性和方法 185
6.2.3 類的實例化 186
6.2.4 類的訪問 186
6.2.5 靜態(tài)屬性和方法 187
6.2.6 構(gòu)造函數(shù)和析構(gòu)函數(shù) 188
6.3 類的繼承 189
6.3.1 子類訪問父類 189
6.3.2 方法重載 190
6.3.3 使用final關(guān)鍵字 190
6.3.4 Traits機(jī)制 190
6.4 抽象類與接口 191
6.4.1 抽象類 191
6.4.2 接口 192
6.5 類的魔術(shù)方法 194
6.5.1 復(fù)制對象 194
6.5.2 方法重載 194
6.5.3 屬性重載 195
6.5.4 字符串轉(zhuǎn)換 196
6.5.5 自動加載對象 196
6.5.6 對象序列化 196
6.5.7 對象調(diào)用 197
6.6 類型判斷與引用 197
6.6.1 對象類型的判斷 197
6.6.2 通過變量引用類 198
6.6.3 引用靜態(tài)調(diào)用的類 198
6.7 實例—設(shè)計一個學(xué)生管理類 199
習(xí)題6 200
第7章 構(gòu)建PHP互動網(wǎng)頁 202
7.1 PHP與表單 202
7.1.1 提交表單數(shù)據(jù) 202
7.1.2 接收表單數(shù)據(jù) 202
7.1.3 常用表單數(shù)據(jù)的驗證方法 203
7.1.4 實例—使用PHP處理表單數(shù)據(jù) 203
7.2 URL處理 206
7.2.1 獲取URL參數(shù) 206
7.2.2 解析URL 207
7.2.3 URL編解碼 207
7.3 頁面跳轉(zhuǎn) 208
7.3.1 使用header()函數(shù) 208
7.3.2 使用HTML標(biāo)記 208
7.3.3 使用客戶端腳本 209
7.4 會話管理 209
7.4.1 會話的工作原理 209
7.4.2 實現(xiàn)會話 209
7.4.3 Cookie技術(shù) 212
7.5 實例—制作一個PHP互動網(wǎng)頁 216
習(xí)題7 221
第8章 數(shù)據(jù)庫基礎(chǔ) 222
8.1 數(shù)據(jù)庫系統(tǒng)和SQL語言 222
8.2 數(shù)據(jù)庫及其對象的創(chuàng)建 223
8.2.1 安裝MySQL 223
8.2.2 創(chuàng)建數(shù)據(jù)庫 223
8.2.3 創(chuàng)建表 224
8.2.4 創(chuàng)建表間記錄完整性 225
8.2.5 創(chuàng)建觸發(fā)器 226
8.2.6 創(chuàng)建存儲過程 227
8.3 錄入數(shù)據(jù)測試數(shù)據(jù)庫對象關(guān)系 228
8.3.1 錄入表記錄 228
8.3.2 觸發(fā)器功能測試 229
8.3.3 表間記錄完整性測試 229
8.3.4 存儲過程的功能測試 230
習(xí)題8 230
第9章 使用PHP擴(kuò)展函數(shù)庫操作數(shù)據(jù)庫 232
9.1 基本原理 232
9.1.1 使用擴(kuò)展函數(shù)庫操作數(shù)據(jù)庫的流程 232
9.1.2 各種DBMS的擴(kuò)展函數(shù) 233
9.2 操作MySQL數(shù)據(jù)庫 233
9.2.1 連接數(shù)據(jù)庫服務(wù)器 233
9.2.2 選擇默認(rèn)數(shù)據(jù)庫 233
9.2.3 執(zhí)行SQL語句 234
9.2.4 處理結(jié)果集 234
9.2.5 關(guān)閉連接 238
9.2.6 其他MySQL擴(kuò)展函數(shù) 238
9.2.7 實例—操作課程表 239
9.3 操作其他數(shù)據(jù)庫 242
9.3.1 操作SQL Server 242
9.3.2 操作Oracle 247
習(xí)題9 254
第10章 使用PDO通用接口操作數(shù)據(jù)庫 256
10.1 基本原理 256
10.1.1 PDO的基本概念 256
10.1.2 PDO操作數(shù)據(jù)庫的步驟 257
10.2 操作MySQL數(shù)據(jù)庫 258
10.2.1 創(chuàng)建MySQL的PDO對象 258
10.2.2 實例—開發(fā)登錄模塊 258
10.3 基于PDO的數(shù)據(jù)庫移植 265
10.3.1 安裝SQL Server的PDO
驅(qū)動 265
10.3.2 更換MySQL為SQL Server 266
習(xí)題10 267
第11章 PHP與AJAX 268
11.1 AJAX基礎(chǔ) 268
11.1.1 AJAX的工作原理 268
11.1.2 AJAX初始化 269
11.1.3 發(fā)送HTTP請求 270
11.1.4 指定響應(yīng)處理函數(shù) 270
11.1.5 處理服務(wù)器返回的信息 270
11.2 PHP與AJAX交互 271
11.2.1 使用GET方法 271
11.2.2 使用POST方法 273
11.2.3 實例——AJAX的應(yīng)用 276
習(xí)題11 278
第2部分 實 訓(xùn)
實訓(xùn)1 PHP、HTML+CSS基礎(chǔ)知識 279
實訓(xùn)1.1 基本標(biāo)記 279
實訓(xùn)1.2 表格 279
實訓(xùn)1.3 表單 280
實訓(xùn)2 PHP環(huán)境與開發(fā)入門 280
實訓(xùn)2.1 環(huán)境安裝與簡單開發(fā) 280
實訓(xùn)2.2 Smarty模板開發(fā) 280
實訓(xùn)2.3 集成環(huán)境與項目遷移 280
實訓(xùn)3 PHP基礎(chǔ)語法 281
實訓(xùn)3.1 變量及輸出 281
實訓(xùn)3.2 程序流程控制 281
實訓(xùn)3.3 函數(shù)應(yīng)用 281
實訓(xùn)4 PHP數(shù)組與字符串 282
實訓(xùn)4.1 數(shù)組處理 282
實訓(xùn)4.2 字符串操作 282
實訓(xùn)4.3 正則表達(dá)式 282
實訓(xùn)5 PHP常用功能模塊 282
實訓(xùn)5.1 文件操作 282
實訓(xùn)5.2 圖形處理 282
實訓(xùn)5.3 日期時間處理 283
實訓(xùn)6 PHP面向?qū)ο蟪绦蛟O(shè)計 283
實訓(xùn)7 構(gòu)建PHP互動網(wǎng)頁 283
實訓(xùn)8 數(shù)據(jù)庫及對象創(chuàng)建與操作 284
實訓(xùn)8.1 熟悉MySQL 284
實訓(xùn)8.2 創(chuàng)建數(shù)據(jù)庫和表 284
實訓(xùn)8.3 創(chuàng)建和測試數(shù)據(jù)庫對象 284
實訓(xùn)9 使用PHP擴(kuò)展函數(shù)庫操作數(shù)據(jù)庫 285
實訓(xùn)10 使用PDO通用接口操作數(shù)據(jù)庫 286
實訓(xùn)11 PHP與AJAX 286
第3部分 綜合應(yīng)用實訓(xùn)—PHP/MySQL學(xué)生成績管理系統(tǒng)
P.1 ThinkPHP入門 287
P.1.1 ThinkPHP的安裝 287
P.1.2 ThinkPHP項目結(jié)構(gòu) 290
P.1.3 一個簡單的ThinkPHP程序 293
P.2 ThinkPHP應(yīng)用系統(tǒng)開發(fā) 298
P.2.1 系統(tǒng)架構(gòu) 298
P.2.2 主頁設(shè)計 299
P.2.3 學(xué)生管理 301
P.2.4 成績管理 306
P.2.5 課程管理 310
P.3 自己設(shè)計實踐 312
P.3.1 課程記錄操作和查詢計算統(tǒng)計 312
P.3.2 學(xué)生課程成績信息查詢 313
第4部分 附 錄
附錄A PHP程序調(diào)試與異常處理 314
A.1 程序調(diào)試 314
A.1.1 常見的編程錯誤 314
A.1.2 PHP錯誤報告管理 315
A.1.3 PHP錯誤調(diào)試方法 315
A.2 異常處理 316
A.2.1 異常處理類 316
A.2.2 PHP的異常處理方法 317
附錄B PHP+HTML混合非框架學(xué)生成績管理系統(tǒng) 319