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