內容簡介
《PHP+MySQL動態網站開發基礎教程》全面講述了PHP程式設計語言的基本原理和技術。全書共分為16章,深入介紹了PHP語言的用途與PHP環境的搭建、PHP語法和函式、字元串、數組、正則表達式、PHP與Web頁面的互動、日期和時間、HTTP、Cookie和Session、資料庫編程、用PHP操作MySQL資料庫、檔案操作、圖像技術、面向對象編程、PHP與JavaScript和Ajax、ThinkPHP等內容。
《PHP+MySQL動態網站開發基礎教程》內容豐富、結構合理、思路清晰、語言簡練流暢、示例翔實,主要面向PHP語言的初學者,適合作為各種Web套用開發培訓機構的培訓教材、高等院校的PHP語言教材,還可作為Web套用開發人員的參考資料。
圖書目錄
第1章 PHP入門 1
1.1 Web技術基礎 1
1.1.1 Web技術概述 1
1.1.2 主流的Web套用平台 3
1.1.3 Web工作原理 3
1.1.4 常用的Web技術 4
1.2 PHP基礎知識 7
1.2.1 PHP概述 7
1.2.2 PHP的優勢 7
1.2.3 PHP的套用領域 8
1.2.4 常用的PHP開發工具 8
1.2.5 如何學好PHP 8
1.2.6 PHP學習資源 9
1.3 PHP開發環境的搭建 12
1.3.1 WAMP環境的搭建 12
1.3.2 LAMP環境的搭建 17
1.3.3 擴展庫 19
1.4 第一個PHP程式 21
1.5 調試與錯誤處理 22
1.5.1 使用自帶的報錯功能 22
1.5.2 引進調試工具 23
1.5.3 調試業務邏輯錯誤 24
1.5.4 調試非功能性錯誤 24
1.6 本章小結 24
1.7 思考和練習 25
第2章 PHP語法和函式 26
2.1 PHP的語法風格 26
2.1.1 PHP標記 26
2.1.2 PHP注釋 27
2.2 PHP標識符與關鍵字 28
2.2.1 PHP標識符 28
2.2.2 關鍵字 28
2.3 PHP常量 29
2.3.1 常量的定義 29
2.3.2 預定義常量 30
2.4 PHP變數 32
2.4.1 變數的聲明和使用 32
2.4.2 PHP的數據類型 33
2.4.3 檢測變數的數據類型 34
2.4.4 可變變數 35
2.4.5 變數的作用域 35
2.5 變數類型的轉換 37
2.5.1 自動類型轉換 38
2.5.2 強制類型轉換 38
2.6 PHP運算符與表達式 39
2.6.1 運算符的類型 40
2.6.2 運算符的優先權 44
2.7 流程控制語句 45
2.7.1 選擇結構 45
2.7.2 循環結構 49
2.8 函式 53
2.8.1 定義和調用函式 53
2.8.2 在函式間傳遞參數 54
2.8.3 從函式中返回值 55
2.8.4 變數函式 56
2.8.5 對函式的引用 56
2.8.6 取消引用 57
2.9 本章小結 58
2.10 思考和練習 58
第3章 字元串 59
3.1 創建和訪問字元串 59
3.1.1 創建字元串 59
3.1.2 在字元串中引用變數 60
3.1.3 自定義分隔設定 61
3.1.4 求字元串的長度和單詞個數 62
3.1.5 訪問字元串中的字元 62
3.2 搜尋字元串 63
3.2.1 用strstr()函式搜尋字元串 63
3.2.2 用strpos()和strrpos()函式定位字元串位置 63
3.2.3 用substr_count()函式統計字元串的出現次數 64
3.2.4 用strpbrk()函式搜尋字元集 65
3.3 在字元串中進行字元替換 65
3.3.1 用str_replace()函式替換
全部搜尋字元串 65
3.3.2 用substr_replace()替換字元串的部分內容 65
3.3.3 用strtr()函式變換字元 66
3.4 格式化字元串 66
3.4.1 通用的格式化函式printf()和sprintf() 66
3.4.2 刪除空白符的函式trim()、ltrim()和rtrim() 70
3.4.3 填充字元串函式str_pad() 71
3.4.4 自動換行函式wordwrap() 71
3.4.5 格式化數值函式number_format() 72
3.5 字母大小寫轉換 73
3.6 本章小結 74
3.7 思考和練習 74
第4章 數組 75
4.1 數組概述 75
4.2 數組的創建與訪問 76
4.2.1 創建數組 76
4.2.2 訪問數組的元素 76
4.2.3 修改元素值 77
4.2.4 新增數組元素 77
4.2.5 輸出所有數組元素 78
4.2.6 切割數組 79
4.2.7 統計數組中元素的個數 80
4.2.8 逐個訪問數組的元素 80
4.3 用foreach遍歷數組 83
4.3.1 用foreach遍歷數組的每個值 83
4.3.2 用foreach遍歷數組的鍵和值 83
4.3.3 用foreach遍歷修改數組元素的值 84
4.4 多維數組 85
4.4.1 創建多維數組 85
4.4.2 訪問多維數組的元素 86
4.4.3 多維數組的遍歷 86
4.5 數組的操作 87
4.5.1 數組排序 88
4.5.2 添加和刪除數組元素 92
4.5.3 合併數組 96
4.5.4 數組與字元串之間的轉換 97
4.5.5 把數組轉換為變數列表 98
4.6 本章小結 99
4.7 思考和練習 99
第5章 正則表達式 101
5.1 什麼是正則表達式 101
5.1.1 正則表達式的概念 101
5.1.2 正則表達式的使用場景 102
5.2 正則表達式的語法規則 103
5.2.1 行定位符(^和$) 103
5.2.2 單詞定界符(\b、\B) 103
5.2.3 字元類([]) 103
5.2.4 選擇字元(|) 104
5.2.5 連字元(-) 104
5.2.6 排除字元([^]) 104
5.2.7 限定符(?*+{n,m}) 104
5.2.8 點字元(.) 105
5.2.9 轉義字元(\) 105
5.2.10 反斜線(\) 106
5.2.11 圓括弧字元(()) 107
5.2.12 反向引用 107
5.3 PHP中的模式匹配 107
5.4 正則表達式的使用 108
5.4.1 匹配字面字元 108
5.4.2 用字元類匹配字元類型 109
5.4.3 多次匹配同一字元 110
5.4.4 貪婪匹配法和非貪婪匹配法 110
5.4.5 用子模式分組模式 110
5.4.6 引用前面的子模式匹配串 111
5.4.7 匹配多個模式 111
5.5 用preg_match_all()函式實現多次匹配 111
5.6 用preg_grep()函式搜尋數組 115
5.7 文本替換 116
5.7.1 用preg_replace()替換文本 116
5.7.2 用preg_replace_callback()替換文本 117
5.8 本章小結 118
5.9 思考和練習 118
第6章 PHP與Web頁面的互動 119
6.1 表單 120
6.1.1 創建表單 120
6.1.2 表單元素 120
6.2 將表單保存為HTML檔案 123
6.3 獲取表單數據的兩種方法 125
6.3.1 通過POST方式提交表單 125
6.3.2 通過GET方式提交表單 125
6.4 PHP參數傳遞的常用方法 126
6.4.1 通過$_POST[]接收表單數據 126
6.4.2 通過$_GET[]接收表單數據 126
6.5 在網頁中嵌入PHP腳本 127
6.5.1 在HTML標記中添加PHP腳本 127
6.5.2 對表單元素的value屬性進行賦值 127
6.6 在PHP中獲取表單數據 127
6.6.1 獲取基本表單元素的值 128
6.6.2 獲取單選按鈕的值 129
6.6.3 獲取複選框的值 130
6.6.4 獲取下拉列表框/選單列表框的值 130
6.6.5 獲取檔案域的值 131
6.7 對URL傳遞的參數進行編碼和解碼 132
6.7.1 對URL傳遞的參數進行編碼 132
6.7.2 對URL傳遞的參數進行解碼 133
6.8 Web伺服器端的其他數據採集方法 134
6.8.1 預定義變數$_REQUEST 134
6.8.2 預定義變數$_SERVER 134
6.9 檔案上傳 136
6.9.1 配置php.ini以實現PHP檔案上傳功能 136
6.9.2 檔案上傳函式 137
6.9.3 多檔案上傳 139
6.10 本章小結 140
6.11 思考和練習 140
第7章 日期和時間、HTTP 141
7.1 日期和時間的處理 141
7.1.1 時間戳 141
7.1.2 獲取當前日期和時間 142
7.1.3 創建時間戳 142
7.1.4 轉換時間戳 144
7.1.5 格式化日期字元串 146
7.1.6 檢查日期值 148
7.1.7 毫秒的使用 148
7.1.8 DataTime 150
7.2 HTTP的使用 152
7.2.1 HTTP請求 152
7.2.2 HTTP回響 153
7.2.3 修改HTTP回響方式 155
7.3 本章小結 156
7.4 思考和練習 156
第8章 Cookie和Session 157
8.1 管理Cookie 157
8.1.1 了解Cookie 157
8.1.2 創建Cookie 159
8.1.3 讀取Cookie 159
8.1.4 刪除Cookie 160
8.1.5 Cookie的生命周期 161
8.2 管理Session 161
8.2.1 了解Session 161
8.2.2 創建Session 162
8.2.3 設定Session的有效時間 163
8.2.4 通過Session對用戶操作許可權進行判斷 164
8.2.5 刪除和銷毀Session 167
8.2.6 Session和Cookie的區別 168
8.2.7 Session和Cookie的套用 169
8.3 Session的高級套用 169
8.3.1 Session臨時檔案 169
8.3.2 Session快取 169
8.3.3 Session自動回收 170
8.3.4 php.ini中的Session配置 171
8.4 本章小結 172
8.5 思考和練習 173
第9章 資料庫編程 174
9.1 MySQL簡介 174
9.1.1 客戶端/伺服器(Client/Server)軟體 174
9.1.2 資料庫常見術語 175
9.2 MySQL的啟動與連線 176
9.2.1 啟動MySQL服務 176
9.2.2 連線和斷開MySQL資料庫 178
9.2.3 配置Path環境變數 178
9.3 操作MySQL資料庫 179
9.3.1 創建和查看資料庫 180
9.3.2 刪除資料庫 181
9.3.3 選擇資料庫 181
9.3.4 綜合實例——資料庫的創建和刪除 181
9.4 運算元據表 184
9.4.1 創建數據表 184
9.4.2 查看錶結構 186
9.4.3 修改表結構 187
9.4.4 重命名數據表 187
9.4.5 刪除數據表 187
9.5 數據記錄的更新操作 188
9.5.1 添加數據記錄 188
9.5.2 查詢數據記錄 188
9.5.3 修改數據記錄 189
9.5.4 刪除數據記錄 189
9.6 MySQL資料庫的備份與還原 190
9.6.1 使用MYSQLDUMP命令備份資料庫 190
9.6.2 使用mysql命令還原資料庫 190
9.7 本章小結 191
9.8 思考和練習 191
第10章 用PHP操作MySQL資料庫 192
10.1 PHP訪問MySQL資料庫的基本步驟 192
10.2 PHP操作MySQL資料庫的
方法 194
10.2.1 連線MySQL伺服器 194
10.2.2 選擇MySQL資料庫 195
10.2.3 執行SQL語句 196
10.2.4 mysql_fetch_array()函式 197
10.2.5 mysql_fetch_object()函式 199
10.2.6 mysql_fetch_row()函式 199
10.2.7 mysql_num_rows()函式 200
10.2.8 釋放資源 201
10.2.9 關閉連線 201
10.3 PHP運算元據庫 202
10.3.1 PHP運算元據庫 202
10.3.2 動態添加用戶信息 203
10.3.3 查詢數據信息 205
10.3.4 修改數據 206
10.3.5 刪除數據 209
10.4 本章小結 210
10.5 思考和練習 210
第11章 檔案操作 211
11.1 檔案與基礎 211
11.2 獲取檔案的信息 212
11.2.1 獲取檔案的時間屬性 212
11.2.2 從路徑獲取檔案名稱 212
11.3 打開和關閉檔案 213
11.3.1 用fopen()打開檔案 213
11.3.2 用fclose()關閉檔案 214
11.4 檔案的讀寫 214
11.4.1 讀寫字元串 215
11.4.2 檔案末尾的測試 217
11.4.3 一次讀取一行內容 218
11.4.4 讀取CSV檔案 218
11.4.5 讀取和寫入整個檔案 219
11.4.6 隨機存取檔案數據 221
11.5 檔案的許可權 222
11.5.1 改變檔案的許可權 222
11.5.2 檢查檔案許可權 223
11.6 檔案的複製、重命名和刪除 223
11.7 224
11.7.1 其他函式 225
11.7.2 對象 227
11.7.3 區分檔案和 227
11.8 本章小結 229
11.9 思考和練習 229
第12章 圖像技術 230
12.1 計算機圖形基礎 230
12.1.1 色彩原理 230
12.1.2 坐標系 231
12.1.3 圖像類型 231
12.2 使用GD庫 232
12.2.1 GD&PHP可以處理的檔案類型 232
12.2.2 在PHP中啟用GD庫 232
12.3 創建圖像 233
12.3.1 新建圖像 234
12.3.2 顏色分配 234
12.3.3 輸出圖像 235
12.3.4 在圖像上進行繪製 236
12.4 處理圖像 241
12.4.1 打開圖像 241
12.4.2 添加水印 242
12.4.3 製作縮略圖 245
12.4.4 添加標準化文本 246
12.4.5 使用TrueType字型 247
12.5 本章小結 249
12.6 思考和練習 249
第13章 面向對象編程 250
13.1 面向對象編程介紹 250
13.2 創建類和對象 252
13.2.1 創建類 252
13.2.2 類的成員 252
13.2.3 實例化類 254
13.3 創建和使用屬性 255
13.3.1 聲明屬性 255
13.3.2 屬性的可見性 255
13.3.3 訪問屬性 256
13.3.4 靜態屬性 257
13.3.5 類常量 257
13.4 方法 258
13.4.1 創建方法 258
13.4.2 方法的可見性 258
13.4.3 方法的調用 258
13.4.4 方法的參數和返回值 259
13.4.5 在方法中訪問對象的屬性 259
13.4.6 靜態方法 261
13.5 用__get()、__set()和__call()重載對象 261
13.5.1 用__get()和__set()方法重載屬性訪問 262
13.5.2 用__call()重載方法調用 263
13.5.3 其他重載方法 265
13.6 繼承與接口 266
13.6.1 重載父類的方法 268
13.6.2 保留父類的功能 270
13.6.3 用final類和方法阻止繼承和重載 270
13.6.4 抽象類和抽象方法 271
13.6.5 接口 273
13.7 自動載入類檔案 276
13.8 序列化類對象 276
13.9 判斷一個對象所屬的類 278
13.10 本章小結 279
13.11 思考和練習 280
第14章 PHP與JavaScript和Ajax 281
14.1 了解JavaScript 281
14.1.1 什麼是JavaScript 281
14.1.2 JavaScript的功能 282
14.2 JavaScript語言基礎 282
14.2.1 JavaScript數據類型 282
14.2.2 JavaScript變數 283
14.2.3 JavaScript注釋 284
14.3 JavaScript流程控制語句 285
14.3.1 條件語句 285
14.3.2 循環語句 288
14.3.3 跳轉語句 290
14.4 JavaScript事件 291
14.5 調用JavaScript腳本 291
14.5.1 在HTML中嵌入JavaScript腳本 291
14.5.2 套用JavaScript事件調用自定義函式 292
14.5.3 在PHP動態網頁中引用JS檔案 292
14.6 在PHP中調用JavaScript 293
14.6.1 使用JavaScript腳本驗證表單元素是否為空 293
14.6.2 使用JavaScript腳本製作二級導航選單 294
14.6.3 使用JavaScript腳本控制文本域和複選框 297
14.7 Ajax技術 298
14.7.1 Ajax的概念 298
14.7.2 Ajax的開發模式 298
14.7.3 Ajax的優點 299
14.7.4 XMLHttpRequest 300
14.7.5 在Ajax開發過程中需要注意的問題 302
14.7.6 用戶重名檢測 303
14.8 本章小結 305
14.9 思考和練習 305
第15章 ThinkPHP 306
15.1 ThinkPHP簡介 306
15.1.1 ThinkPHP的安裝 307
15.1.2 ThinkPHP概述 308
15.2 ThinkPHP架構 309
15.2.1 ThinkPHP的結構 310
15.2.2 自動生成項目 311
15.2.3 命名規範 314
15.2.4 資源 315
15.2.5 調試模式配置 315
15.2.6 控制器 315
15.2.7 視圖 318
15.2.8 數據讀取 319
15.3 URL和路由 320
15.3.1 URL訪問 320
15.3.2 參數傳入 321
15.3.3 隱藏入口 322
15.3.4 定義路由 322
15.3.5 URL生成 323
15.4 請求與回響 323
15.4.1 請求對象 323
15.4.2 請求信息 325
15.4.3 回響信息 326
15.5 資料庫操作 327
15.5.1 資料庫配置 327
15.5.2 原生查詢 327
15.5.3 鏈式操作 328
15.5.4 事務支持 328
15.6 模型和關聯 329
15.6.1 模型定義 329
15.6.2 基礎操作 330
15.7 視圖和模板 332
15.7.1 模板輸出 332
15.7.2 分頁輸出 333
15.7.3 渲染內容 334
15.8 本章小結 334
15.9 思考和練習 335
第16章 綜合實例 336
16.1 網站開發流程 336
16.1.1 確定建站目標 336
16.1.2 進行需求分析 336
16.1.3 繪製網站原型 337
16.1.4 系統整理所需資料 337
16.1.5 與網站設計美工確定布局和風格 337
16.1.6 程式設計師完成網站功能實現 337
16.1.7 網站上線測試 337
16.1.8 網站推廣 337
16.2 留言板 338
16.2.1 留言板製作預備知識 338
16.2.2 留言板功能需求分析 338
16.2.3 留言板資料庫表設計 339
16.2.4 留言信息的讀取展示 339
16.2.5 留言表單及留言處理 341
16.2.6 後台管理登錄 344
16.2.7 PHP 留言板系統後台管理 345
16.2.8 後台管理回復及留言刪除處理 346
16.3 個人部落格 347
16.3.1 功能闡述 347
16.3.2 功能結構 348
16.3.3 系統預覽 348
16.3.4 資料庫設計 349
16.3.5 數據表設計 349
16.3.6 連線資料庫 351
16.3.7 自動生成項目 351
16.3.8 控制器的設定 352
16.3.9 視圖設定 355
16.3.10 後台管理程式架構分析 360
16.3.11 數據模型和數據校驗的設計 362
16.4 本章小結 365
16.5 思考和練習 365
參考文獻 367