本書采用項(xiàng)目化內(nèi)容組織方式,通過一系列精心設(shè)計的項(xiàng)目案例,逐步引導(dǎo)讀者從PHP編程入門走向精通。具體項(xiàng)目包括啟程探索PHP世界、智能BMI計算與健身運(yùn)動推薦系統(tǒng)、匯率計算器、學(xué)生成績計算器、文本內(nèi)容過濾器、用戶注冊平臺、問卷統(tǒng)計工具、購物車系統(tǒng)、學(xué)生信息管理系統(tǒng)。項(xiàng)目內(nèi)容全面涵蓋PHP語法基礎(chǔ)、流程控制、函數(shù)、文件和目錄操作、前后端交互等知識,旨在通過實(shí)際項(xiàng)目加深讀者對PHP編程技術(shù)的理解,提高應(yīng)用能力。
本書在深入講解PHP編程技術(shù)的同時,特別強(qiáng)調(diào)了網(wǎng)絡(luò)應(yīng)用安全措施的重要性,旨在幫助讀者構(gòu)建功能強(qiáng)大且安全可靠的Web應(yīng)用。
本書適合作為普通高等學(xué)校、職業(yè)院校計算機(jī)相關(guān)專業(yè)的教材,同時也適合作為PHP愛好者及相關(guān)技術(shù)人員的自學(xué)參考書。
1、注重實(shí)踐:書中將提供豐富的實(shí)踐項(xiàng)目,使讀者在學(xué)習(xí)過程中能夠動手實(shí)踐,提高實(shí)際操作能力。
2、結(jié)合安全:在講解PHP編程的基礎(chǔ)上,引入信息安全的相關(guān)知識,讓讀者了解并掌握安全防護(hù)技巧。
3、理論與實(shí)踐相結(jié)合:在介紹PHP編程和安全知識的同時,提供相應(yīng)的理論支持,使讀者能夠更好地理解和運(yùn)用所學(xué)知識。
4、案例教學(xué):通過分析實(shí)際案例,讓讀者了解并掌握PHP編程和安全實(shí)踐在實(shí)際應(yīng)用中的具體運(yùn)用。
5、面向應(yīng)用:本書將面向?qū)嶋H應(yīng)用,讓讀者在學(xué)習(xí)過程中能夠更好地應(yīng)對實(shí)際工作中的挑戰(zhàn)。
臧金梅,山東信息職業(yè)技術(shù)學(xué)院教師,擁有15年專業(yè)教學(xué)經(jīng)驗(yàn),主要研究方向?yàn)閃eb前端開發(fā)、計算機(jī)網(wǎng)絡(luò)等。參與編寫了5本高職規(guī)劃教材,1本為十四五職業(yè)教育國家規(guī)劃教材,參與建設(shè)了1門省級精品課程、2門省級精品資源共享課程、2門省級在線精品課程、1門一流核心課程(線下)。主持和參與各級課題十余項(xiàng),發(fā)表多篇學(xué)術(shù)論文,獲省級職業(yè)教育成果獎二等獎一項(xiàng)。曾獲山東省第七屆超星杯高校青年教師教學(xué)比賽二等獎,建行杯山東省互聯(lián)網(wǎng) 大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽金獎1項(xiàng)、銅獎1項(xiàng)。
目 錄
模塊1 PHP基礎(chǔ)
項(xiàng)目1
啟程探索PHP世界PHP編程入門 2
知識儲備 3
1.1 PHP簡介 3
1.1.1 什么是PHP 3
1.1.2 PHP的發(fā)展歷史 3
1.1.3 PHP的語言特性 4
1.1.4 PHP的工作原理 5
1.2 PHP開發(fā)環(huán)境與工具 5
1.2.1 PHP開發(fā)環(huán)境 5
1.2.2 PHP集成開發(fā)環(huán)境 6
1.2.3 PHP開發(fā)工具 7
【素養(yǎng)提升】工具是為思維服務(wù)的 8
1.2.4 Visual Studio Code的安裝
配置 8
【素養(yǎng)提升】智能編程助手不是
萬能的 10
1.3 PHP的簡單語法 11
1.3.1 PHP的標(biāo)記方式 11
1.3.2 PHP的注釋方式 12
1.3.3 PHP的數(shù)據(jù)輸出方式 12
1.3.4 字符串連接運(yùn)算符 13
1.3.5 換行符的使用 13
【能力進(jìn)階】PHP編程書寫規(guī)范 14
項(xiàng)目分析 14
項(xiàng)目實(shí)施 14
任務(wù)1-1 搭建PHP開發(fā)環(huán)境 14
任務(wù)1-2 創(chuàng)建PHP文件 15
任務(wù)1-3 編寫PHP代碼 15
項(xiàng)目實(shí)訓(xùn)輸出個人信息 17
項(xiàng)目小結(jié) 17
應(yīng)用安全拓展 17
鞏固練習(xí) 18
項(xiàng)目2
智能BMI計算與健身運(yùn)動推薦
系統(tǒng)語法基礎(chǔ) 19
知識儲備 20
2.1 變量和常量 20
2.1.1 標(biāo)識符 20
2.1.2 關(guān)鍵字 20
2.1.3 變量 21
【案例實(shí)踐2-1】輸出商品信息 23
【能力進(jìn)階】編程命名規(guī)范 24
2.1.4 常量 24
【案例實(shí)踐2-2】輸出商品折扣
信息 25
2.2 標(biāo)量數(shù)據(jù)類型 26
2.2.1 布爾型 26
2.2.2 整型 27
2.2.3 浮點(diǎn)型 27
2.2.4 字符串型 27
2.2.5 數(shù)據(jù)類型的檢測 30
2.3 運(yùn)算符 31
2.3.1 運(yùn)算符的分類 31
【能力進(jìn)階】三目運(yùn)算符嵌套 32
2.3.2 算術(shù)運(yùn)算符 32
【案例實(shí)踐2-3】計算商品折扣
價格 33
2.3.3 賦值運(yùn)算符 34
2.3.4 比較運(yùn)算符 35
2.3.5 邏輯運(yùn)算符 36
2.3.6 運(yùn)算符的優(yōu)先級 37
【案例實(shí)踐2-4】計算商品盈利 37
2.4 表達(dá)式 38
2.5 數(shù)據(jù)類型的轉(zhuǎn)換 39
2.5.1 自動類型轉(zhuǎn)換 39
2.5.2 強(qiáng)制類型轉(zhuǎn)換 40
項(xiàng)目分析 41
項(xiàng)目實(shí)施 41
任務(wù)2-1 計算BMI 41
任務(wù)2-2 實(shí)現(xiàn)健身運(yùn)動推薦 42
項(xiàng)目實(shí)訓(xùn)圖書信息的定義及管理 43
項(xiàng)目小結(jié) 43
應(yīng)用安全拓展 44
鞏固練習(xí) 46
項(xiàng)目3
匯率計算器流程控制 47
知識儲備 48
3.1 流程控制簡述 48
3.2 分支結(jié)構(gòu) 48
3.2.1 單分支結(jié)構(gòu) 48
3.2.2 雙分支結(jié)構(gòu) 50
3.2.3 分支結(jié)構(gòu)的嵌套應(yīng)用 50
【案例實(shí)踐3-1】兒童旅行費(fèi)折扣
問題 51
3.2.4 多分支結(jié)構(gòu)if...elseif...else
語句 52
【案例實(shí)踐3-2】分時問候 54
【能力進(jìn)階】深入理解分支結(jié)構(gòu)中else
語句的含義 54
3.2.5 多分支結(jié)構(gòu)switch
語句 56
【案例實(shí)踐3-3】課余活動反饋 58
3.2.6 switch語句和if語句結(jié)合的
結(jié)構(gòu) 59
3.3 循環(huán)結(jié)構(gòu) 59
3.3.1 for循環(huán)結(jié)構(gòu) 59
【案例實(shí)踐3-4】實(shí)現(xiàn)1~10的奇偶數(shù)
判斷 60
3.3.2 while循環(huán)結(jié)構(gòu) 61
3.3.3 do…while循環(huán)結(jié)構(gòu) 61
【素養(yǎng)提升】有趣的while和do…while
循環(huán)結(jié)構(gòu) 62
3.3.4 循環(huán)嵌套 62
【案例實(shí)踐3-5】實(shí)現(xiàn)九九乘法表的
輸出 63
【素養(yǎng)提升】循環(huán)中的智慧:人生的
重復(fù)與成長 64
3.4 跳轉(zhuǎn)語句 64
3.4.1 break語句 64
3.4.2 continue語句 65
3.5 異常處理 65
3.5.1 錯誤類型和級別 65
3.5.2 異常處理方式 66
3.6 文件包含語句 67
3.6.1 include語句和require
語句 67
3.6.2 include_once語句和
require_once語句 68
項(xiàng)目分析 69
項(xiàng)目實(shí)施 69
任務(wù)3-1 一對一匯率計算 69
任務(wù)3-2 一對多匯率計算 71
項(xiàng)目實(shí)訓(xùn)輸出金字塔圖形 72
項(xiàng)目小結(jié) 72
應(yīng)用安全拓展 73
鞏固練習(xí) 74
項(xiàng)目4
學(xué)生成績計算器PHP
函數(shù) 76
知識儲備 77
4.1 初識函數(shù) 77
4.1.1 函數(shù)的概念 77
4.1.2 函數(shù)的優(yōu)勢 77
4.1.3 函數(shù)的分類 78
4.2 自定義函數(shù) 78
4.2.1 函數(shù)的定義 79
【案例實(shí)踐4-1】使用函數(shù)創(chuàng)建
表格 79
【素養(yǎng)提升】函數(shù)使用規(guī)范 80
4.2.2 函數(shù)的參數(shù) 80
4.2.3 函數(shù)的調(diào)用 82
【案例實(shí)踐4-2】精確判斷特定年月的
天數(shù) 84
4.2.4 變量的作用域 85
【能力進(jìn)階】匿名函數(shù) 86
4.3 處理GET請求和預(yù)定義
變量$_GET 87
4.4 預(yù)定義函數(shù) 87
4.4.1 變量函數(shù) 87
【案例實(shí)踐4-3】數(shù)據(jù)驗(yàn)證與類型
處理 89
4.4.2 數(shù)學(xué)函數(shù) 90
【案例實(shí)踐4-4】數(shù)學(xué)運(yùn)算工具箱 90
4.4.3 時間和日期函數(shù) 92
【案例實(shí)踐4-5】計算度過的時間 93
【素養(yǎng)提升】自主獲取信息 94
項(xiàng)目分析 95
項(xiàng)目實(shí)施 95
任務(wù)4-1 構(gòu)建成績輸入與驗(yàn)證
界面 95
任務(wù)4-2 計算加權(quán)總分 95
任務(wù)4-3 評估成績等級 96
任務(wù)4-4 計算學(xué)生成績 96
項(xiàng)目實(shí)訓(xùn)日期差計算器 97
項(xiàng)目小結(jié) 97
應(yīng)用安全拓展 98
鞏固練習(xí) 99
項(xiàng)目5
文本內(nèi)容過濾器數(shù)據(jù)
處理 101
知識儲備 102
5.1 數(shù)組 102
5.1.1 初識數(shù)組 102
5.1.2 數(shù)組的創(chuàng)建和初始化 103
5.1.3 數(shù)組的遍歷 104
【案例實(shí)踐5-1】計算學(xué)生平均分 106
5.1.4 常用的數(shù)組函數(shù) 106
【案例實(shí)踐5-2】獲取學(xué)生分?jǐn)?shù)的
各種統(tǒng)計信息 107
【案例實(shí)踐5-3】使用指針操作
數(shù)組 109
5.2 字符串 113
5.2.1 字符串的輸出 113
5.2.2 常用的字符串操作函數(shù) 113
【能力進(jìn)階】其他截取函數(shù) 114
【能力進(jìn)階】其他查找函數(shù) 114
【能力進(jìn)階】其他去除空白函數(shù) 116
【案例實(shí)踐5-4】通過文件路徑獲取
文件基本信息 116
【案例實(shí)踐5-5】格式化表單提交的數(shù)據(jù) 117
【案例實(shí)踐5-6】隱私保護(hù):格式化
用戶提交的手機(jī)號 119
【素養(yǎng)提升】培養(yǎng)隱私保護(hù)意識,構(gòu)建
和諧數(shù)字社會 119
5.2.3 字符串與數(shù)組 120
【案例實(shí)踐5-7】判斷IP地址
格式 121
項(xiàng)目分析 122
項(xiàng)目實(shí)施 122
任務(wù)5-1 定義敏感詞庫 122
任務(wù)5-2 實(shí)現(xiàn)內(nèi)容過濾邏輯 122
任務(wù)5-3 測試并展示過濾效果 123
項(xiàng)目實(shí)訓(xùn)敏感詞過濾與檢測 123
項(xiàng)目小結(jié) 123
應(yīng)用安全拓展 124
鞏固練習(xí) 125
模塊2 PHP進(jìn)階
項(xiàng)目6
用戶注冊平臺前后端數(shù)據(jù)
交互 128
知識儲備 129
6.1 表單基礎(chǔ)與數(shù)據(jù)交互 129
6.1.1 創(chuàng)建表單 129
6.1.2 添加表單控件 129
6.1.3 提交表單數(shù)據(jù) 131
6.1.4 獲取表單提交的數(shù)據(jù) 132
【案例實(shí)踐6-1】實(shí)現(xiàn)簡單的用戶
登錄和驗(yàn)證 134
【能力進(jìn)階】$_SERVER超全局
變量 135
【能力進(jìn)階】判斷表單是否被
提交 135
【能力進(jìn)階】深入理解GET與
POST 136
6.1.5 處理表單數(shù)組數(shù)據(jù) 136
【案例實(shí)踐6-2】學(xué)生課外活動選擇
表單 137
6.1.6 查詢字符串與URL參數(shù)
傳遞 138
6.1.7 使用查詢字符串實(shí)現(xiàn)前后端
數(shù)據(jù)交互 139
【案例實(shí)踐6-3】動態(tài)展示新聞
列表 139
【能力進(jìn)階】對GET請求與查詢
字符串的理解 140
6.2 HTTP基礎(chǔ) 141
6.2.1 HTTP/HTTPS簡介 141
6.2.2 HTTP Headers的組成 142
6.2.3 基本信息 142
6.2.4 請求報文 144
【案例實(shí)踐6-4】查看請求報文 146
6.2.5 響應(yīng)報文 147
【能力進(jìn)階】自定義響應(yīng)頭 148
6.3 Cookie和Session技術(shù) 149
6.3.1 Cookie技術(shù) 149
【案例實(shí)踐6-5】 實(shí)現(xiàn)用戶自動
登錄 152
6.3.2 Session技術(shù) 153
【案例實(shí)踐6-6】 通過Session
驗(yàn)證登錄信息 155
6.3.3 Cookie和Session的
區(qū)別 157
【素養(yǎng)提升】PHP中的前后端數(shù)據(jù)
交互與用戶隱私保護(hù) 158
6.4 正則表達(dá)式 158
6.4.1 正則表達(dá)式簡介 158
6.4.2 正則表達(dá)式的組成 158
6.4.3 正則表達(dá)式的用法 158
6.4.4 正則表達(dá)式在PHP中的
應(yīng)用 161
【案例實(shí)踐6-7】提取電子郵件
地址 163
項(xiàng)目分析 164
項(xiàng)目實(shí)施 164
任務(wù)6-1 實(shí)現(xiàn)用戶注冊界面 164
任務(wù)6-2 實(shí)現(xiàn)用戶數(shù)據(jù)有效性
檢查 165
項(xiàng)目實(shí)訓(xùn)用戶登錄與登出 166
項(xiàng)目小結(jié) 167
應(yīng)用安全拓展 168
鞏固練習(xí) 170
項(xiàng)目7
問卷統(tǒng)計工具文件和目錄
操作 171
知識儲備 172
7.1 目錄操作 172
7.1.1 目錄基本操作 172
【案例實(shí)踐7-1】使用scandir()函數(shù)
遍歷指定目錄 174
7.1.2 目錄與路徑解析 174
【案例實(shí)踐7-2】解析路徑基本
信息 175
7.1.3 目錄句柄 176
【案例實(shí)踐7-3】使用目錄句柄函數(shù)
遍歷指定目錄 177
7.2 文件操作 178
7.2.1 文件基本操作 178
7.2.2 文件讀寫操作 180
7.2.3 文件的上傳 183
【案例實(shí)踐7-4】實(shí)現(xiàn)單個文件
上傳 185
【能力進(jìn)階】多文件上傳技巧 186
【素養(yǎng)提升】精確操作文件和目錄 187
項(xiàng)目分析 187
項(xiàng)目實(shí)施 187
任務(wù)7-1 實(shí)現(xiàn)問卷統(tǒng)計工具
界面 187
任務(wù)7-2 設(shè)計統(tǒng)計問卷選項(xiàng) 188
項(xiàng)目實(shí)訓(xùn)上傳個人簡歷和照片 191
項(xiàng)目小結(jié) 191
應(yīng)用安全拓展 192
鞏固練習(xí) 193
項(xiàng)目8
購物車系統(tǒng)面向?qū)ο蟪绦?br />
設(shè)計 195
知識儲備 196
8.1 面向?qū)ο?196
8.1.1 面向過程和面向?qū)ο蟮?br />
對比 196
8.1.2 面向?qū)ο蟪绦蛟O(shè)計的優(yōu)勢 196
8.1.3 面向?qū)ο蟮暮诵母拍?197
8.2 類和對象 197
8.2.1 類的定義 198
8.2.2 訪問控制修飾符 198
8.2.3 類的實(shí)例化 199
8.2.4 訪問類的成員 200
【能力進(jìn)階】為何在類方法中使用return
語句而非echo語句 200
【案例實(shí)踐8-1】類的實(shí)例化及類
成員的訪問 201
8.2.5 對象的比較 202
8.3 魔術(shù)方法 203
8.3.1 常見的魔術(shù)方法 203
8.3.2 構(gòu)造方法 203
8.3.3 析構(gòu)方法 204
【案例實(shí)踐8-2】構(gòu)造方法和析構(gòu)方法
的應(yīng)用 205
8.4 類常量和靜態(tài)成員 206
8.4.1 類常量 206
8.4.2 靜態(tài)成員 207
【能力進(jìn)階】類常量和靜態(tài)屬性的
應(yīng)用場景 208
【能力進(jìn)階】self和static
關(guān)鍵字 208
8.5 面向?qū)ο蟮奶匦?208
8.5.1 封裝 208
8.5.2 繼承 211
【能力進(jìn)階】認(rèn)識parent關(guān)鍵字 212
【能力進(jìn)階】認(rèn)識final關(guān)鍵字 212
8.5.3 多態(tài) 213
【案例實(shí)踐8-3】實(shí)現(xiàn)學(xué)校運(yùn)動員參賽
得獎統(tǒng)計 214
8.6 抽象類和接口 216
8.6.1 抽象類 216
8.6.2 接口 217
【案例實(shí)踐8-4】實(shí)現(xiàn)常見交通工具的
應(yīng)用 218
【素養(yǎng)提升】從面向?qū)ο蟪绦蛟O(shè)計到職
業(yè)素養(yǎng):技術(shù)提升與團(tuán)隊(duì)協(xié)作的
雙向進(jìn)階 219
項(xiàng)目分析 220
項(xiàng)目實(shí)施 220
任務(wù)8-1 定義商品類及其子類 220
任務(wù)8-2 定義購物車類 222
任務(wù)8-3 實(shí)現(xiàn)前端界面 223
任務(wù)8-4 實(shí)現(xiàn)后端邏輯 225
項(xiàng)目實(shí)訓(xùn)常見圖形的周長和面積
計算器 226
項(xiàng)目小結(jié) 227
應(yīng)用安全拓展 227
鞏固練習(xí) 228
項(xiàng)目9
學(xué)生信息管理系統(tǒng)使用PHP操作MySQL數(shù)據(jù)庫 230
知識儲備 231
9.1 MySQL概述 231
9.1.1 MySQL簡介 231
9.1.2 MySQL的特點(diǎn) 231
9.1.3 安裝MySQL 232
9.1.4 啟動MySQL 232
9.1.5 安裝MySQL可視化工具 232
9.2 MySQL的基本操作 233
9.2.1 MySQL數(shù)據(jù)庫操作 233
9.2.2 MySQL數(shù)據(jù)表操作 234
9.2.3 MySQL數(shù)據(jù)操作 235
9.3 PHP的數(shù)據(jù)庫擴(kuò)展 235
9.3.1 MySQLi擴(kuò)展 235
9.3.2 PDO擴(kuò)展 236
9.3.3 其他數(shù)據(jù)庫擴(kuò)展 236
9.4 使用PHP操作MySQL
數(shù)據(jù)庫 236
9.4.1 MySQLi擴(kuò)展的用法 236
9.4.2 MySQLi擴(kuò)展的核心函數(shù) 236
9.4.3 連接MySQL數(shù)據(jù)庫 237
【能力進(jìn)階】封裝數(shù)據(jù)庫連接
代碼 238
9.4.4 選擇MySQL數(shù)據(jù)庫 238
9.4.5 執(zhí)行SQL語句 238
【案例實(shí)踐9-1】實(shí)現(xiàn)學(xué)生注冊
功能 239
9.4.6 預(yù)處理操作 240
【案例實(shí)踐9-2】添加預(yù)處理實(shí)現(xiàn)學(xué)生
注冊功能 242
9.4.7 處理結(jié)果集 243
【案例實(shí)踐9-3】解決用戶名沖突
問題 244
【案例實(shí)踐9-4】實(shí)現(xiàn)學(xué)生登錄
功能 246
9.4.8 釋放結(jié)果集 247
9.4.9 斷開數(shù)據(jù)庫連接 247
【素養(yǎng)提升】數(shù)據(jù)安全意識的培養(yǎng)與
加強(qiáng) 248
項(xiàng)目分析 248
項(xiàng)目實(shí)施 248
任務(wù)9-1 設(shè)計數(shù)據(jù)庫 248
任務(wù)9-2 設(shè)計數(shù)據(jù)連接 249
任務(wù)9-3 設(shè)計登錄頁面 249
任務(wù)9-4 設(shè)置操作權(quán)限 250
任務(wù)9-5 設(shè)計注冊頁面 251
任務(wù)9-6 添加數(shù)據(jù) 253
任務(wù)9-7 瀏覽數(shù)據(jù) 254
任務(wù)9-8 編輯數(shù)據(jù) 255
任務(wù)9-9 刪除數(shù)據(jù) 258
任務(wù)9-10 查詢數(shù)據(jù) 259
項(xiàng)目實(shí)訓(xùn)圖書管理系統(tǒng) 260
項(xiàng)目小結(jié) 262
應(yīng)用安全拓展 262
鞏固練習(xí) 263