PHP簡單易學且功能強大,是Web開發(fā)的首選語言。本書由淺入深、循序漸進,系統(tǒng)地介紹了PHP的相關知識及其在Web開發(fā)中的實際應用,并通過具體案例,使讀者鞏固所學知識,更好地進行開發(fā)實踐。本書共分為14章,涵蓋了PHP開發(fā)環(huán)境的搭建、PHP語法、FORM表單、數據庫開發(fā)、面向對象編程、使用PDO連接數據庫、會話控制、界面設計等內容。
本書內容豐富、講解深入,適用于初、中級PHP用戶,可以用做各類院校相關專業(yè)的教材,同時也是面向廣大PHP愛好者的一本PHP實用參考書。
1.零基礎入門:讀者無需太多技術基礎,就能非常輕松地掌握數據庫設計、軟件工程以及動態(tài)網站開發(fā)等相關技術。
2.內容豐富且實用:本書遵循知識的學習曲線,內容豐富,結合具體案例編排章節(jié)的內容,從一個知識點過渡到另一個知識點非常順暢和自然。
3.強調實訓環(huán)節(jié)與PHP知識的結合:以講解PHP基礎知識為目標,以案例的實現為載體,以不同的章節(jié)完成不同的任務為理念,采用軟件工程的思想實現具體案例。
4.涉及面廣:異常處理、結構化編程、面向對象編程、軟件工程、軟件測試、數據庫設計、界面設計等知識在本書中均有觸及。
5.豐富而實用的課后習題:精選新浪、百度等知名公司面試題。
孔祥盛,副教授,精通Java、JavaScript、PHP、Python等編程語言,熟悉Web開發(fā)、爬蟲、自動化測試、數據分析與數據挖掘、數據可視化、數據庫等技術,擅長將抽象的理論知識具體化、生活化,善于將綜合知識融會貫通于項目案例,主編教材《PHP基礎與實例教程》 印次20余次,并獲河南省普通高等教育十四五規(guī)劃教材立項、河南省優(yōu)秀教材二等獎,主編教材《MySQL數據庫基礎與實例教程》印次近20次。
第 1章 PHP入門7
1.1 PHP概況7
1.2 Web開發(fā)基礎知識8
1.2.1 瀏覽器8
1.2.2 服務器8
1.2.3 靜態(tài)資源文件和動態(tài)資源文件9
1.3 HTML程序和PHP程序的執(zhí)行流程9
1.3.1 HTML程序9
1.3.2 PHP程序10
1.3.3 存在靜態(tài)代碼的PHP程序12
上機實踐1 安裝、啟動和關閉Apache服務13
上機實踐2 編寫HTML程序和PHP程序15
上機實踐3 安裝PHP預處理器16
上機實踐4 Apache以加載模塊方式自動加載PHP預處理器17
上機實踐5 設置PHP預處理器的時區(qū)17
上機實踐6 配置Apache服務18
上機實踐7 查看PHP的配置信息19
上機實踐8 查看Web服務器端口號占用情況20
場景1:拔掉舊SIM卡20
場景2:修改新SIM的默認端口號20
上機實踐9:了解字符編碼對于程序的重要性21
習 題22
第 2章 PHP基礎知識22
2.1 PHP代碼基礎知識22
2.1.1 PHP標記的簡寫23
2.1.2 PHP語句及語句塊23
2.1.3 PHP代碼注釋和HTML代碼注釋24
2.1.4 PHP代碼的分解與合并25
2.2 賦值語句和變量25
2.2.1 標識符和標識符的命名規(guī)則26
2.2.2 賦值語句和變量26
2.2.3 手動刪除變量名28
2.2.4 變量賦值方法29
2.2.5 可變變量32
2.3 自定義常量和預定義常量32
2.3.1 自定義常量32
2.3.2 預定義常量33
2.4 數據類型33
2.4.1 布爾值34
2.4.2 整數34
2.4.3 浮點數35
2.4.4 字符串35
2.4.5 數組38
2.4.6 對象38
2.4.7 資源39
2.4.8 null39
2.5 數據的輸出39
2.5.1.print和echo40
2.5.2.print_r函數40
2.5.3.var_dump函數40
2.5.4.var_export函數41
2.6 編程規(guī)范41
2.5.1 書寫規(guī)范41
2.5.2 命名規(guī)范42
上機實踐 PHP基礎知識43
習題43
第3章 PHP表達式43
3.1 表達式和語句43
3.2 變量和常量狀態(tài)信息的函數44
3.2.1 檢查常量或變量是否定義44
3.2.2 檢查變量值是否為空的函數45
3.2.3 查看變量或常量的數據類型46
3.2.4 數據類型檢查函數46
3.3 運算符47
3.3.1 算術運算符47
3.3.2 遞增 遞減運算符47
3.3.3 賦值運算符48
3.3.4 比較運算符49
3.3.5 邏輯運算符50
3.3.6 錯誤抑制運算符50
3.3.7 字符串連接運算符51
3.3.8 條件運算符51
3.3.9 null合并運算符52
3.3.10 執(zhí)行運算符52
3.3.11 類型運算符53
3.3.12 運算符優(yōu)先級53
3.4 數據類型的轉換53
3.4.1 類型強制轉換53
3.4.2 類型自動轉換56
上機實踐 PHP表達式56
習題56
第4章 PHP控制語句60
4.1 GET請求和預定義變量$_GET60
4.1.1 認識GET請求60
4.1.2 認識預定義變量$_GET61
4.2 條件控制語句62
4.2.1 if語句62
4.2.2 if…else語句62
4.2.3 else if和elseif語句63
4.2.4 switch語句64
4.2.5 match表達式65
4.3 循環(huán)語句66
4.3.1 while循環(huán)語句66
4.3.2 do…while循環(huán)語句67
4.3.3 for循環(huán)語句68
4.3.4 循環(huán)語句的應用69
4.4 其他控制語句69
4.4.1 continue語句69
4.4.2 break語句70
4.4.3 強行終止程序的執(zhí)行70
4.5 錯誤和異常71
4.5.1 警告、錯誤和異常概述71
4.5.2 try…catch…finally完整語法格式71
上機實踐 PHP控制語句72
習題72
第5章 PHP數組73
5.1 數組的必要性73
5.2 PHP數組的特點74
5.3 數組的分類74
5.4 創(chuàng)建數組74
5.4.1 變量名后跟[ ]變?yōu)閿到M名74
5.4.2 使用array語句或[ ]語句創(chuàng)建數組76
5.4.3 關于數組中元素的鍵的說明76
5.5 訪問、修改或刪除數組元素77
5.6 二維數組79
5.7 數組的解包80
5.8 數組處理函數80
5.8.1 快速創(chuàng)建數組的函數81
5.8.2 數組統(tǒng)計函數82
5.8.3 數組指針函數84
5.8.4 list語句85
5.8.5 使用循環(huán)語句遍歷數組86
5.8.6 foreach語句87
5.8.7 數組檢索函數88
5.8.8 數組排序函數90
上機實踐 PHP數組91
習題91
第6章 PHP處理FORM表單94
6.1 認識GET請求、FORM表單和POST請求95
上機實踐: 認識GET請求、FORM表單和POST請求95
6.2 FORM表單96
6.2.1 表單標簽96
6.2..2 表單控件97
6.2.3 表單控件的其他常用屬性99
6.2.4 其他表單控件100
6.2.5 表單按鈕100
6.2.6 補充知識101
上機實踐: FORM表單的綜合應用102
上機實踐: 認識輸出緩存104
6.3 文件上傳功能的實現106
6.3.1 文件上傳的相關配置106
6.3.2 PHP文件上傳流程107
6.3.3 預定義變量$_FILES108
6.3.4 PHP文件上傳的實現108
上機實踐: 文件上傳功能的實現108
6.4 URL路徑109
6.4.1 URL絕對路徑110
6.4.2 URL相對路徑110
6.4.3 URL相對路徑其他概念110
上機實踐: URL相對路徑和URL絕對路徑110
6.5 其他常用的預定義變量111
上機實踐 PHP處理FORM表單112
習題112
第7章 自定義函數113
7.1 請求包含113
7.1.1 請求包含的語法格式114
7.1.2 四種請求包含的區(qū)別114
7.1.3 請求包含的返回值115
上機實踐:認識include_path116
7.2 自定義函數的語法格式117
7.3 函數的調用118
上機實踐:自定義函數的定義和調用118
上機實踐:形參的組包和實參的解包119
7.4 變量的作用域和生命周期120
7.5 傳值賦值和傳引用賦值120
7.5 global關鍵字123
7.6 static關鍵字123
7.7 變量函數126
7.8 return和exit127
上機實踐:自定義函數綜合示例128
上機實踐 自定義函數129
習題129
第8章 PHP結構化編程和PHP面向對象編程132
10.1 結構化編程132
上機實踐:使用結構化編程解決三角形問題133
10.2 面向對象編程135
10.3 理解類和對象之間的關系135
10.4 自定義類、創(chuàng)建對象和方法的調用136
10.4.1 自定義類和創(chuàng)建類的對象136
10.4.2 定義構造方法和創(chuàng)建類的對象137
10.4.3 定義方法和調用方法139
上機實踐:使用面向對象編程解決三角形問題1139
10.5 靜態(tài)方法和靜態(tài)方法的調用140
上機實踐:使用面向對象編程解決三角形問題2142
10.6 PHP結構化編程和PHP面向對象編程144
上機實踐 PHP面向對象編程145
習題145
第9章 MySQL數據庫145
9.1 數據庫概述145
9.1.1 數據庫管理系統(tǒng)和數據庫145
9.1.2 表結構和表記錄146
9.1.3 SQL146
9.2 MySQL安裝和配置147
上機實踐:在Windows中安裝MySQL ZIP壓縮文件147
上機實踐:將MySQL服務注冊為Windows服務149
9.3 數據庫的管理151
9.4 SQL腳本文件151
9.5 表結構的管理152
9.5.1 創(chuàng)建表結構前的準備工作152
9.5.2 創(chuàng)建表結構的語法格式153
9.5.3 創(chuàng)建users表的表結構153
9.5.3 查看表以及查看表結構154
9.5.4 刪除表結構的語法格式155
9.6 表記錄的更新操作155
9.6.1 insert155
9.6.2 update156
9.6.3 delete156
9.7 表記錄的查詢操作157
9.7.1 distinct和limit157
9.7.2 表和表之間的連接157
9.7.3 使用where子句過濾結果集158
9.7.4 使用order by對結果集排序159
9.7.5 使用聚合函數匯總結果集159
9.7.6 使用group by子句進行分組159
習題160
第 10章 PHP訪問MySQL數據庫162
10.1 PHP訪問MySQL數據庫的方法162
上機實踐:開啟PDO訪問MySQL數據庫的擴展163
10.2 PDO連接MySQL數據庫163
10.3 PDO對象的prepare方法164
10.4 PDOStatement對象的execute方法165
10.4.1 execute方法、更新語句和rowCount方法165
10.4.2 execute方法、查詢語句和fetch(all)方法167
10.4.3 execute方法、查詢語句和fetchColumn168
10.5 PDO對象的lastInsertId方法169
上機實踐:用戶注冊和用戶登錄功能的實現169
習題172
第 11章 個人博客系統(tǒng)的設計與開發(fā)173
11.1 個人博客系統(tǒng)的開發(fā)流程173
11.2 個人博客系統(tǒng)的系統(tǒng)規(guī)劃173
113 個人博客系統(tǒng)的系統(tǒng)分析173
11.4 個人博客系統(tǒng)E-R圖175
11.5 個人博客系統(tǒng)的系統(tǒng)設計177
11.6 個人博客系統(tǒng)的系統(tǒng)實施178
上機實踐:創(chuàng)建個人博客系統(tǒng)的目錄結構178
上機實踐:創(chuàng)建個人博客系統(tǒng)的表結構179
上機實踐:添加測試數據181
上機實踐:博客管理功能的實現182
上機實踐:評論管理功能的實現190
11.7 分頁技術193
11.7.1 分頁技術的實現方法193
11.7.2 分頁技術的最簡單實現194
11.7.3 分頁導航的實現194
上機實踐:分頁技術的實現195
10.8 個人博客系統(tǒng)的系統(tǒng)測試197
10.8 個人博客系統(tǒng)系統(tǒng)的運行和維護198
習題198
第 12章 會話控制技術:Cookie與Session199
12.1 會話控制技術概述199
12.2 Cookie會話技術199
12.2.1 Cookie工作原理和生命周期199
12.2.2 Cookie的目的和典型應用201
12.2.3 使用setcookie函數創(chuàng)建Cookie201
12.2.4 其他PHP程序讀取Cookie202
12.2.5 刪除瀏覽器端的Cookie202
上機實踐:Cookie會話技術203
12.3 Session會話技術206
12.3.1 Session工作原理和生命周期206
12.3.2 Cookie會話和Session會話之間的關系207
12.3.3 php.ini中有關Session的配置參數208
12.3.4 session_start函數208
12.3.5 全局變量$_SESSION208
12.3.6 有關Session的常用函數209
上機實踐:Session會話技術209
12.4 header函數的使用218
12.4.1 響應行218
12.4.2 HTTP響應頭和HTTP響應頭列表218
12.4.3 header函數的使用219
上機實踐:header函數的使用220
習題224
第 13章 字符串處理225
13.1 指定字符串的方法226
13.1.1 使用單引號或雙引號指定字符串226
13.1.2 使用heredoc語法指定字符串226
13.1.3 使用nowdoc語法指定字符串226
13.2 常用字符串處理函數227
13.2.1 mb_*函數227
13.2.2 拼接和裁剪函數229
13.2.3 特殊字符處理函數229
13.2.4 URL字符串處理函數230
上機實踐:個人博客系統(tǒng)中字符串的處理233
上機實踐 字符串處理234
習題234
第 14章 個人博客系統(tǒng)首頁的UI設計與實現237
14.1 Web前端技術237
14.1.1 HTML簡介237
14.1.2 HTML元素的屬性238
14.1.3 CSS簡介238
14.1.4 JavaScript簡介239
14.1.5 通過JavaScript的document對象操作HTML元素240
上機實踐:Web前端技術241
14.2 使用DIV CSS實現個人博客系統(tǒng)首頁的頁面布局244
14.2.1 DIV CSS概述244
14.2.2 使用DIV定義個人博客系統(tǒng)首頁的內容結構244
上機實踐:使用DIV CSS實現個人博客系統(tǒng)首頁的頁面布局245
上機實踐:將個人博客系統(tǒng)的各個功能模塊整合到首頁253