PHP網站開發實例教程(第3版)
黑馬程序員
相關主題
商品描述
本書作為面向PHP初學者的入門級教材,以通俗易懂的語言、豐富的圖解和實用的案例,詳細講解如何使用PHP開發網站。
全書共11章。第1章講解PHP開發環境的搭建,第2~5章講解PHP基礎知識,第6章講解PHP面向對象編程的相關內容,第7章和第8章講解PHP框架的基礎知識,第9章講解PDO擴展和Smarty模板引擎,第10章和第11章講解項目實戰和Laravel框架。
本書適合作為高等教育本、專科院校計算機相關專業的教材,也可作為廣大計算機編程愛好者的自學參考書。
作者簡介
傳智播客成立於2006年,它是由中國Java培訓第一人張孝祥老師發起,聯合全球最大的中文IT社區CSDN、中關村軟件園共同創辦的一家專業教育機構。辦學至今,我們一直堅守著“為千萬人少走彎路而著書,為中華軟件之崛起而講課”的辦學理念,堅持培養優秀軟件應用工程師的宏偉目標,在累計培養的十萬余名學員中,其中90%的學員均已在北、上、廣等一線城市高薪就業,特別是“黑馬程序員”的平均就業薪資已達到8K以上。為了迎合軟件市場的需求,我們陸續開設了Java、網頁平面、PHP、.Net、iOS、C/C++、Android等9個專業方向的課程,並且未來將逐漸開設其他專業方向的課程。隨著傳智播客的日益壯大,除了北京總部,我們在上海、廣州、武漢、成都、深圳等地也創立了直營分支機構,傳智播客儼然已成為了國內最具專業口碑的IT教育機構。
目錄大綱
第 1章 初識PHP 1
1.1 PHP簡介 1
1.1.1 PHP概述 1
1.1.2 PHP的特點 2
1.2 網站簡介 2
1.2.1 網站概述 2
1.2.2 網站的訪問 3
1.3 搭建開發環境 4
1.3.1 安裝Visual Studio Code 4
1.3.2 安裝Apache HTTP Server 6
1.3.3 安裝PHP 9
1.4 配置Web服務器 11
1.4.1 配置虛擬主機 11
1.4.2 設置目錄訪問權限 12
1.4.3 【案例】根據需求配置虛擬
主機 14
本章小結 14
課後練習 14
第 2章 PHP語法基礎 16
2.1 基本語法 16
2.1.1 PHP標記 16
2.1.2 註釋 18
2.1.3 輸出語句 18
2.1.4 標識符 19
2.1.5 關鍵字 19
2.1.6 【案例】在網頁中嵌入PHP
代碼 20
2.2 變量、常量和表達式 20
2.2.1 變量 21
2.2.2 可變變量 21
2.2.3 常量 21
2.2.4 預定義常量 22
2.2.5 表達式 23
2.2.6 【案例】顯示服務器信息 23
2.3 數據類型 23
2.3.1 數據類型分類 23
2.3.2 數據類型檢測 26
2.3.3 數據類型轉換 27
2.4 運算符 28
2.4.1 算術運算符 28
2.4.2 賦值運算符 29
2.4.3 【案例】商品價格計算 30
2.4.4 錯誤控制運算符 30
2.4.5 比較運算符 30
2.4.6 合並運算符 31
2.4.7 三元運算符 31
2.4.8 邏輯運算符 31
2.4.9 遞增與遞減運算符 32
2.4.10 位運算符 32
2.4.11 運算符優先級 33
2.5 流程控制 34
2.5.1 分支結構 34
2.5.2 【案例】判斷學生成績等級 38
2.5.3 循環結構 38
2.5.4 循環嵌套 41
2.5.5 【案例】九九乘法表 42
2.5.6 跳轉語句 43
2.6 文件包含語句 43
2.6.1 include語句和require語句 43
2.6.2 include_once語句和require_once
語句 45
本章小結 46
課後練習 46
第3章 PHP函數與數組 48
3.1 函數 48
3.1.1 函數的定義和調用 49
3.1.2 設置函數參數的默認值 49
3.1.3 變量的作用域 50
3.1.4 可變函數 51
3.1.5 匿名函數 51
3.1.6 函數的遞歸調用 52
3.1.7 字符串函數 52
3.1.8 數學函數 54
3.1.9 時間和日期函數 55
3.1.10 【案例】獲取文件擴展名 55
3.2 數組 56
3.2.1 初識數組 56
3.2.2 數組的基本使用 57
3.2.3 遍歷數組 58
3.2.4 數組和字符串的轉換 59
3.2.5 【案例】訂貨單 60
3.3 常用數組函數 60
3.3.1 基本數組函數 60
3.3.2 數組排序函數 61
3.3.3 數組檢索函數 62
3.3.4 【案例】學生隨機分組 63
本章小結 63
課後練習 64
第4章 PHP進階 65
4.1 錯誤處理 65
4.1.1 錯誤類型 65
4.1.2 錯誤信息 66
4.2 HTTP 68
4.2.1 HTTP概述 68
4.2.2 HTTP請求 68
4.2.3 查看請求數據 69
4.2.4 HTTP響應 70
4.2.5 設置響應數據 72
4.3 表單傳值 73
4.3.1 表單傳值方式 73
4.3.2 接收表單數據 73
4.3.3 表單提交數組值 74
4.4 會話技術 74
4.4.1 Cookie簡介 75
4.4.2 Cookie的基本使用方法 75
4.4.3 Session簡介 76
4.4.4 Session的基本使用方法 77
4.4.5 Session的配置 77
4.4.6 【案例】用戶登錄和退出 78
4.5 圖像處理 79
4.5.1 開啟GD擴展 79
4.5.2 常用的圖像處理函數 79
4.5.3 【案例】制作驗證碼 80
4.6 目錄和文件操作 80
4.6.1 目錄操作 81
4.6.2 文件操作 83
4.6.3 【案例】遞歸遍歷目錄 85
4.6.4 單文件上傳 85
4.6.5 多文件上傳 86
4.6.6 【案例】文件上傳 87
4.7 正則表達式 87
4.7.1 正則表達式概述 87
4.7.2 正則表達式函數 88
本章小結 88
課後練習 88
第5章 PHP操作MySQL 90
5.1 MySQL環境搭建 90
5.1.1 獲取MySQL 90
5.1.2 安裝MySQL 92
5.1.3 配置和啟動MySQL 93
5.1.4 登錄MySQL 94
5.2 PHP中的數據庫擴展 95
5.3 MySQLi擴展的使用 95
5.3.1 開啟MySQLi擴展 95
5.3.2 MySQLi擴展的常用函數 96
5.3.3 使用MySQLi擴展操作數據庫 97
5.3.4 使用MySQLi擴展操作數據 99
本章小結 102
課後練習 102
第6章 PHP面向對象編程 104
6.1 初識面向對象 104
6.1.1 面向過程與面向對象的區別 105
6.1.2 面向對象中的類與對象 105
6.1.3 面向對象的三大特性 106
6.2 類與對象的使用 106
6.2.1 類的定義和實例化 106
6.2.2 類成員 108
6.2.3 對象的克隆 109
6.2.4 訪問控制修飾符 111
6.2.5 類中的$this 111
6.2.6 構造方法 112
6.2.7 析構方法 113
6.3 類常量和靜態成員 113
6.3.1 類常量 113
6.3.2 靜態成員 114
6.4 繼承 115
6.4.1 繼承的實現 115
6.4.2 有限繼承 116
6.4.3 重寫 117
6.4.4 靜態延遲綁定 119
6.4.5 final關鍵字 119
6.5 抽象類 120
6.6 接口 121
6.6.1 接口的實現 121
6.6.2 接口的繼承 122
本章小結 123
課後練習 123
第7章 PHP框架基礎(上) 125
7.1 初識框架 125
7.1.1 框架概述 125
7.1.2 常見的PHP框架 126
7.2 MVC設計模式 126
7.2.1 MVC概述 126
7.2.2 【案例】實現MVC設計模式 127
7.3 框架的單一入口和路由 128
7.3.1 單一入口概述 128
7.3.2 【案例】實現單一入口 128
7.3.3 【案例】隱藏入口文件 129
7.3.4 框架中的路由 129
7.3.5 【案例】路由的代碼實現 129
7.4 命名空間 130
7.4.1 命名空間的定義 130
7.4.2 命名空間的訪問 131
7.4.3 導入命名空間 132
7.5 自動加載 135
7.5.1 註冊自動加載函數 135
7.5.2 註冊自動加載方法 136
本章小結 137
課後練習 137
第8章 PHP框架基礎(下) 139
8.1 劃分框架目錄結構 139
8.2 使用Composer管理項目 140
8.2.1 安裝Composer 140
8.2.2 使用Composer實現自動
加載 141
8.2.3 使用Composer管理項目
依賴 143
8.2.4 【案例】創建自己的包 144
8.3 框架基礎搭建 145
8.3.1 App類 145
8.3.2 Request類 147
8.3.3 Response類 149
8.3.4 Container類 150
8.4 反射 152
8.4.1 反射API 152
8.4.2 依賴註入 154
8.4.3 【案例】利用反射實現依賴
註入 155
8.5 異常處理 155
8.5.1 異常的拋出和捕獲 155
8.5.2 自定義異常類 157
8.5.3 多異常捕獲處理 157
8.5.4 異常嵌套 158
8.5.5 【案例】在框架中處理異常 159
本章小結 159
課後練習 159
第9章 PDO擴展和Smarty
模板引擎 161
9.1 PDO擴展 161
9.1.1 開啟PDO擴展 161
9.1.2 連接和選擇數據庫 162
9.1.3 執行SQL語句 162
9.1.4 處理結果集 163
9.1.5 預處理機制 165
9.1.6 PDO錯誤處理 168
9.1.7 PDO事務處理 169
9.2 在自定義框架中封裝數據庫
操作類 170
9.2.1 【案例】封裝DB類 170
9.2.2 【案例】封裝Model類 171
9.3 Smarty模板引擎 171
9.3.1 安裝Smarty 171
9.3.2 Smarty的基本使用 172
9.3.3 【案例】在自定義框架中
使用Smarty 173
本章小結 174
課後練習 174
第 10章 項目實戰——內容管理
系統 176
10.1 項目展示 176
10.2 內容管理系統的功能實現 178
10.2.1 後臺功能實現 178
10.2.2 前臺功能實現 180
本章小結 181
第 11章 Laravel框架 182
11.1 初識Laravel 182
11.1.1 Laravel概述 182
11.1.2 創建Laravel項目 183
11.1.3 配置VS Code編輯器 184
11.1.4 Laravel目錄結構 185
11.2 路由 186
11.2.1 配置路由 186
11.2.2 路由參數 187
11.2.3 路由別名 188
11.2.4 路由分組 188
11.3 控制器 189
11.3.1 創建控制器 189
11.3.2 控制器路由 190
11.3.3 接收用戶輸入 191
11.4 視圖 192
11.4.1 創建視圖文件 193
11.4.2 向視圖傳遞數據 194
11.4.3 遍歷操作 195
11.4.4 判斷操作 195
11.4.5 模板繼承 196
11.4.6 模板包含 198
11.5 模型 199
11.5.1 定義模型 199
11.5.2 在控制器中使用模型 200
11.5.3 利用模型添加數據 201
11.5.4 利用模型查詢數據 202
11.5.5 利用模型修改數據 203
11.5.6 利用模型刪除數據 203
本章小結 204
課後練習 204
第 1章 初識PHP 1
1.1 PHP簡介 1
1.1.1 PHP概述 1
1.1.2 PHP的特點 2
1.2 網站簡介 2
1.2.1 網站概述 2
1.2.2 網站的訪問 3
1.3 搭建開發環境 4
1.3.1 安裝Visual Studio Code 4
1.3.2 安裝Apache HTTP Server 6
1.3.3 安裝PHP 9
1.4 配置Web服務器 11
1.4.1 配置虛擬主機 11
1.4.2 設置目錄訪問權限 12
1.4.3 【案例】根據需求配置虛擬
主機 14
本章小結 14
課後練習 14
第 2章 PHP語法基礎 16
2.1 基本語法 16
2.1.1 PHP標記 16
2.1.2 註釋 18
2.1.3 輸出語句 18
2.1.4 標識符 19
2.1.5 關鍵字 19
2.1.6 【案例】在網頁中嵌入PHP
代碼 20
2.2 變量、常量和表達式 20
2.2.1 變量 21
2.2.2 可變變量 21
2.2.3 常量 21
2.2.4 預定義常量 22
2.2.5 表達式 23
2.2.6 【案例】顯示服務器信息 23
2.3 數據類型 23
2.3.1 數據類型分類 23
2.3.2 數據類型檢測 26
2.3.3 數據類型轉換 27
2.4 運算符 28
2.4.1 算術運算符 28
2.4.2 賦值運算符 29
2.4.3 【案例】商品價格計算 30
2.4.4 錯誤控制運算符 30
2.4.5 比較運算符 30
2.4.6 合並運算符 31
2.4.7 三元運算符 31
2.4.8 邏輯運算符 31
2.4.9 遞增與遞減運算符 32
2.4.10 位運算符 32
2.4.11 運算符優先級 33
2.5 流程控制 34
2.5.1 分支結構 34
2.5.2 【案例】判斷學生成績等級 38
2.5.3 循環結構 38
2.5.4 循環嵌套 41
2.5.5 【案例】九九乘法表 42
2.5.6 跳轉語句 43
2.6 文件包含語句 43
2.6.1 include語句和require語句 43
2.6.2 include_once語句和require_once
語句 45
本章小結 46
課後練習 46
第3章 PHP函數與數組 48
3.1 函數 48
3.1.1 函數的定義和調用 49
3.1.2 設置函數參數的默認值 49
3.1.3 變量的作用域 50
3.1.4 可變函數 51
3.1.5 匿名函數 51
3.1.6 函數的遞歸調用 52
3.1.7 字符串函數 52
3.1.8 數學函數 54
3.1.9 時間和日期函數 55
3.1.10 【案例】獲取文件擴展名 55
3.2 數組 56
3.2.1 初識數組 56
3.2.2 數組的基本使用 57
3.2.3 遍歷數組 58
3.2.4 數組和字符串的轉換 59
3.2.5 【案例】訂貨單 60
3.3 常用數組函數 60
3.3.1 基本數組函數 60
3.3.2 數組排序函數 61
3.3.3 數組檢索函數 62
3.3.4 【案例】學生隨機分組 63
本章小結 63
課後練習 64
第4章 PHP進階 65
4.1 錯誤處理 65
4.1.1 錯誤類型 65
4.1.2 錯誤信息 66
4.2 HTTP 68
4.2.1 HTTP概述 68
4.2.2 HTTP請求 68
4.2.3 查看請求數據 69
4.2.4 HTTP響應 70
4.2.5 設置響應數據 72
4.3 表單傳值 73
4.3.1 表單傳值方式 73
4.3.2 接收表單數據 73
4.3.3 表單提交數組值 74
4.4 會話技術 74
4.4.1 Cookie簡介 75
4.4.2 Cookie的基本使用方法 75
4.4.3 Session簡介 76
4.4.4 Session的基本使用方法 77
4.4.5 Session的配置 77
4.4.6 【案例】用戶登錄和退出 78
4.5 圖像處理 79
4.5.1 開啟GD擴展 79
4.5.2 常用的圖像處理函數 79
4.5.3 【案例】制作驗證碼 80
4.6 目錄和文件操作 80
4.6.1 目錄操作 81
4.6.2 文件操作 83
4.6.3 【案例】遞歸遍歷目錄 85
4.6.4 單文件上傳 85
4.6.5 多文件上傳 86
4.6.6 【案例】文件上傳 87
4.7 正則表達式 87
4.7.1 正則表達式概述 87
4.7.2 正則表達式函數 88
本章小結 88
課後練習 88
第5章 PHP操作MySQL 90
5.1 MySQL環境搭建 90
5.1.1 獲取MySQL 90
5.1.2 安裝MySQL 92
5.1.3 配置和啟動MySQL 93
5.1.4 登錄MySQL 94
5.2 PHP中的數據庫擴展 95
5.3 MySQLi擴展的使用 95
5.3.1 開啟MySQLi擴展 95
5.3.2 MySQLi擴展的常用函數 96
5.3.3 使用MySQLi擴展操作數據庫 97
5.3.4 使用MySQLi擴展操作數據 99
本章小結 102
課後練習 102
第6章 PHP面向對象編程 104
6.1 初識面向對象 104
6.1.1 面向過程與面向對象的區別 105
6.1.2 面向對象中的類與對象 105
6.1.3 面向對象的三大特性 106
6.2 類與對象的使用 106
6.2.1 類的定義和實例化 106
6.2.2 類成員 108
6.2.3 對象的克隆 109
6.2.4 訪問控制修飾符 111
6.2.5 類中的$this 111
6.2.6 構造方法 112
6.2.7 析構方法 113
6.3 類常量和靜態成員 113
6.3.1 類常量 113
6.3.2 靜態成員 114
6.4 繼承 115
6.4.1 繼承的實現 115
6.4.2 有限繼承 116
6.4.3 重寫 117
6.4.4 靜態延遲綁定 119
6.4.5 final關鍵字 119
6.5 抽象類 120
6.6 接口 121
6.6.1 接口的實現 121
6.6.2 接口的繼承 122
本章小結 123
課後練習 123
第7章 PHP框架基礎(上) 125
7.1 初識框架 125
7.1.1 框架概述 125
7.1.2 常見的PHP框架 126
7.2 MVC設計模式 126
7.2.1 MVC概述 126
7.2.2 【案例】實現MVC設計模式 127
7.3 框架的單一入口和路由 128
7.3.1 單一入口概述 128
7.3.2 【案例】實現單一入口 128
7.3.3 【案例】隱藏入口文件 129
7.3.4 框架中的路由 129
7.3.5 【案例】路由的代碼實現 129
7.4 命名空間 130
7.4.1 命名空間的定義 130
7.4.2 命名空間的訪問 131
7.4.3 導入命名空間 132
7.5 自動加載 135
7.5.1 註冊自動加載函數 135
7.5.2 註冊自動加載方法 136
本章小結 137
課後練習 137
第8章 PHP框架基礎(下) 139
8.1 劃分框架目錄結構 139
8.2 使用Composer管理項目 140
8.2.1 安裝Composer 140
8.2.2 使用Composer實現自動
加載 141
8.2.3 使用Composer管理項目
依賴 143
8.2.4 【案例】創建自己的包 144
8.3 框架基礎搭建 145
8.3.1 App類 145
8.3.2 Request類 147
8.3.3 Response類 149
8.3.4 Container類 150
8.4 反射 152
8.4.1 反射API 152
8.4.2 依賴註入 154
8.4.3 【案例】利用反射實現依賴
註入 155
8.5 異常處理 155
8.5.1 異常的拋出和捕獲 155
8.5.2 自定義異常類 157
8.5.3 多異常捕獲處理 157
8.5.4 異常嵌套 158
8.5.5 【案例】在框架中處理異常 159
本章小結 159
課後練習 159
第9章 PDO擴展和Smarty
模板引擎 161
9.1 PDO擴展 161
9.1.1 開啟PDO擴展 161
9.1.2 連接和選擇數據庫 162
9.1.3 執行SQL語句 162
9.1.4 處理結果集 163
9.1.5 預處理機制 165
9.1.6 PDO錯誤處理 168
9.1.7 PDO事務處理 169
9.2 在自定義框架中封裝數據庫
操作類 170
9.2.1 【案例】封裝DB類 170
9.2.2 【案例】封裝Model類 171
9.3 Smarty模板引擎 171
9.3.1 安裝Smarty 171
9.3.2 Smarty的基本使用 172
9.3.3 【案例】在自定義框架中
使用Smarty 173
本章小結 174
課後練習 174
第 10章 項目實戰——內容管理
系統 176
10.1 項目展示 176
10.2 內容管理系統的功能實現 178
10.2.1 後臺功能實現 178
10.2.2 前臺功能實現 180
本章小結 181
第 11章 Laravel框架 182
11.1 初識Laravel 182
11.1.1 Laravel概述 182
11.1.2 創建Laravel項目 183
11.1.3 配置VS Code編輯器 184
11.1.4 Laravel目錄結構 185
11.2 路由 186
11.2.1 配置路由 186
11.2.2 路由參數 187
11.2.3 路由別名 188
11.2.4 路由分組 188
11.3 控制器 189
11.3.1 創建控制器 189
11.3.2 控制器路由 190
11.3.3 接收用戶輸入 191
11.4 視圖 192
11.4.1 創建視圖文件 193
11.4.2 向視圖傳遞數據 194
11.4.3 遍歷操作 195
11.4.4 判斷操作 195
11.4.5 模板繼承 196
11.4.6 模板包含 198
11.5 模型 199
11.5.1 定義模型 199
11.5.2 在控制器中使用模型 200
11.5.3 利用模型添加數據 201
11.5.4 利用模型查詢數據 202
11.5.5 利用模型修改數據 203
11.5.6 利用模型刪除數據 203
本章小結 204
課後練習 204

