主要內容
本書通過大量實例及一個完整項目案例,幫助讀者更好地鞏固所學知識,提升能力;隨書附贈的《小白實戰手冊》中給出了3個流行且實用的案例的詳細開發流程,力求讓學習者能學以致用,真正獲得開發經驗;附贈的光碟中給出視頻講解、實例及項目源碼、代碼查錯器、練一練和動手糾錯答案等,方便讀者學習;書中設定了***多個二維碼,掃描二維碼觀看視頻講解,解決學習疑難;不易理解的專業術語、代碼難點只需手機掃描文字下方的e學碼獲得更多擴展解釋,隨時掃除學習障礙。此外,登錄明日學院網站還可以獲得更多學習資源和技術支持。
圖書與《小白實戰手冊》+光碟+二維碼+e學碼+明日學院,實現立體化、全方位的教學模式,拉低編程門檻,讓零基礎者輕鬆跨入編程領域。
目錄
第1 篇基礎知識
第1 章初識PHP...............2
1.1 PHP概述.............................. 3
1.1.1 什麼是PHP ...................... 3
1.1.2 PHP語言的優勢.................. 3
1.1.3 PHP5的新特性................... 3
1.1.4 PHP的發展趨勢.................. 4
1.1.5 PHP的套用領域.................. 5
1.2 學習資源............................. 5
1.2.1 PHP用戶手冊.................... 5
1.2.2 常用網上資源................... 6
1.3 搭建PHP運行環境...................... 7
1.3.1 phpStudy的下載與安裝........... 7
1.3.2 PHP伺服器的啟動與停止.......... 9
1.3.3 phpStudy的常用設定............ 10
1.4 PhpStorm的下載與安裝................ 11
1.4.1 PhpStorm的下載................ 12
1.4.2 PhpStorm的安裝................ 13
1.5 PhpStorm基本操作.................... 16
1.5.1 創建PHP項目................... 16
1.5.2 打開已有項目.................. 19
1.5.3 在項目中創建資料夾和檔案...... 20
1.6 PhpStorm常用設定.................... 22
1.6.1 設定檔案編碼格式.............. 22
1.6.2 其他常用設定.................. 24
1.7 難點解答............................ 24
1.7.1 為什麼要設定檔案編碼格式為
UTF-8......................... 24
1.7.2 運行PHP程式前,先開啟phpStudy 24
1.8 小結................................ 24
第2 章PHP 語言基礎..........25
2.1 PHP標記風格......................... 26
2.2 PHP注釋的套用....................... 26
2.3 PHP的數據類型....................... 28
2.3.1 數據類型...................... 28
2.3.2 數據類型轉換.................. 30
2.3.3 檢測數據類型.................. 31
2.4 PHP常量............................. 32
2.4.1 定義常量...................... 33
2.4.2 預定義常量.................... 33
2.5 PHP變數............................. 34
2.5.1 變數賦值及使用................ 35
2.5.2 PHP預定義變數................. 36
2.6 PHP操作符........................... 37
2.6.1 算術操作符.................... 38
2.6.2 字元串操作符.................. 39
2.6.3 賦值操作符.................... 40
2.6.4 遞增或遞減操作符.............. 40
2.6.5 邏輯操作符.................... 41
2.6.6 比較操作符.................... 42
2.6.7 條件操作符(或三元操作符).... 42
2.6.8 操作符的優先權................ 43
2.7 PHP的表達式......................... 44
2.8 PHP函式............................. 45
2.8.1 定義和調用函式................ 45
2.8.2 在函式間傳遞參數.............. 46
2.8.3 從函式中返回值................ 48
2.8.4 變數作用域.................... 49
2.9 PHP編碼規範......................... 50
2.9.1 PSR-1基礎編碼規範............. 51
2.9.2 PSR-2編碼風格規範............. 52
2.10 難點解答........................... 53
2.10.1 類型轉換..................... 53
2.10.2 什麼函式需要使用默認參數..... 53
2.11 小結............................... 53
2.12 動手糾錯........................... 54
第3 章流程控制語句.........55
3.1 條件控制語句........................ 56
3.1.1 if語句........................ 56
3.1.2 if…else語句.................. 57
3.1.3 elseif語句.................... 58
3.1.4 switch語句.................... 60
3.2 循環控制語句........................ 62
3.2.1 for循環語句................... 62
3.2.2 while循環語句................. 63
3.2.3 do…while循環語句............. 65
3.3 跳轉語句............................ 66
3.3.1 break語句..................... 66
3.3.2 continue語句.................. 67
3.4 難點解答............................ 68
3.3.1 if…else執行順序.............. 68
3.3.2 while和do -while的區別........ 68
3.5 小結................................ 68
3.6 動手糾錯............................ 69
第4 章字元串操作與正則
表達式...............71
4.1 字元串的定義方法.................... 72
4.1.1 使用單引號或雙引號定義字元串... 72
4.1.2 使用定界符定義字元串.......... 73
4.2 字元串操作.......................... 73
4.2.1 去除字元串首尾空格和特殊字元... 74
4.2.2 獲取字元串的長度.............. 76
4.2.3 截取字元串.................... 78
4.2.4 檢索字元串.................... 81
4.2.5 替換字元串.................... 84
4.2.6 分割、合成字元串.............. 86
4.3 正則表達式.......................... 88
4.3.1 正則表達式簡介................ 88
4.3.2 行定位符...................... 88
4.3.3 元字元........................ 89
4.3.4 重複.......................... 89
4.3.5 字元類........................ 90
4.3.6 排除字元...................... 90
4.3.7 選擇字元...................... 90
4.3.8 轉義字元...................... 91
4.3.9 分組.......................... 91
4.4 正則表達式在PHP中的套用............. 91
4.5 難點解答............................ 93
4.5.1 慎用strlen函式處理中文字元.... 93
4.5.2 strstr()函式和strpos()函式的
區別.......................... 93
4.6 小結................................ 94
4.7 動手糾錯............................ 94
第5 章PHP 數組..............97
5.1 什麼是數組.......................... 98
5.2 創建數組............................ 98
5.2.1 使用array()函式創建數組....... 98
5.2.2 通過賦值方式創建數組......... 100
5.3 數組的類型......................... 100
5.3.1 數字索引數組................. 101
5.3.2 關聯數組..................... 101
5.4 多維數組........................... 102
5.5 遍歷數組........................... 104
5.6 統計數組元素個數................... 106
5.7 查詢數組中指定元素................. 107
5.8 獲取數組中最後一個元素............. 109
5.9 向數組中添加元素................... 110
5.10 刪除數組中重複元素................ 110
5.11 其他常用數組函式.................. 112
5.11.1 數組排序函式................ 112
5.11.2 數組計算函式................ 114
5.12 難點解答.......................... 115
5.12.1 數組的索引.................. 115
5.12.2 count()函式計算二維數組長度... 116
5.13 小結.............................. 116
5.14 動手糾錯.......................... 116
第2 篇核心技術
第6 章面向對象............120
6.1 面向對象的基本概念................. 121
6.1.1 類的概念..................... 121
6.1.2 對象的概念................... 121
6.1.3 面向對象編程的三大特點....... 122
6.2 PHP與對象.......................... 123
6.2.1 類的定義..................... 123
6.2.2 成員方法..................... 123
6.2.3 類的實例化................... 124
6.2.4 成員變數..................... 125
6.2.5 類常量....................... 126
6.2.6 構造方法和析構方法........... 127
6.2.7 繼承和多態................... 129
6.2.8 “$this ->”和“::”的使用.... 133
6.2.9 數據隱藏..................... 134
6.2.10 靜態變數(方法)............ 137
6.3 PHP對象的高級套用.................. 138
6.3.1 f inal關鍵字................. 138
6.3.2 抽象類....................... 139
6.3.3 接口的使用................... 140
6.3.4 對象類型檢測................. 142
6.3.5 魔術方法(__) ................. 142
6.4 面向對象的套用..................... 147
6.5 難點解答........................... 149
6.5.1 類和對象的關係............... 149
6.5.2 方法與函式的區別............. 150
6.5 小結............................... 150
6.6 動手糾錯........................... 150
第7 章PHP 與WEB 互動.......153
7.1 Web工作原理........................ 154
7.1.1 HTTP協定..................... 154
7.1.2 Web工作原理.................. 155
7.2 HTML表單........................... 156
7.2.1 HTML簡介..................... 156
7.2.2 HTML表單..................... 158
7.2.3 表單元素..................... 159
7.3 CSS美化表單頁面.................... 162
7.3.1 CSS簡介...................... 162
7.3.2 插入CSS樣式表................ 162
7.3.3 使用CSS美化表單頁面.......... 165
7.4 JavaScript表單驗證................. 168
7.4.1 JavaScript簡介............... 168
7.4.2 調用JavaScript ............... 169
7.4.3 JavaScript表單驗證........... 171
7.5 PHP獲取表單數據.................... 174
7.5.1 獲取POST方式提交的表單數據... 174
7.5.2 獲取GET方式提交的表單數據.... 176
7.6 難點解答........................... 179
7.6.1 Web工作原理.................. 179
7.6.2 JavaScript和Java關係......... 179
7.6.3 JavaScript和jQuery的關係..... 179
7.7 小結............................... 179
7.8 動手糾錯........................... 180
第8 章MySQL 資料庫基礎.....183
8.1 MySQL概述.......................... 184
8.2 啟動和關閉MySQL伺服器.............. 184
8.2.1 啟動MySQL伺服器.............. 184
8.2.2 連線和斷開MySQL伺服器........ 185
8.3 操作MySQL資料庫.................... 189
8.3.1 創建資料庫................... 189
8.3.2 選擇資料庫................... 190
8.3.3 查看資料庫................... 190
8.3.4 刪除資料庫................... 191
8.4 MySQL數據類型...................... 191
8.4.1 數字類型..................... 191
8.4.2 字元串類型................... 192
8.4.3 日期和時間類型............... 194
8.5 運算元據表......................... 194
8.5.1 創建數據表................... 194
8.5.2 查看錶結構................... 196
8.5.3 修改表結構................... 197
8.5.4 重命名數據表................. 198
8.5.5 刪除數據表................... 199
8.6 數據表記錄的操作................... 199
8.6.1 數據表記錄的添加............. 199
8.6.2 數據表記錄的查詢............. 200
8.6.3 數據表記錄的修改............. 201
8.6.4 數據表記錄的刪除............. 201
8.7 數據表記錄的查詢操作............... 202
8.8 MySQL中的特殊字元.................. 206
8.9 MySQL圖形化管理工具............ 206
8.9.1 phpMyAdmin簡介............... 207
8.9.2 Navicat for MySQL簡介........ 208
8.9.3 MySQL-Front簡介.............. 209
8.10 難點解答.......................... 210
8.10.1 drop、delete和truncate的區別210
8.10.2 主鍵、外鍵和索引的區別...... 211
8.11 小結.............................. 211
第9 章PHP 操作MySQL 資料庫.213
9.1 PHP操作MySQL資料庫的方法........... 214
9.1.1 連線MySQL伺服器.............. 214
9.1.2 選擇MySQL資料庫.............. 215
9.1.3 執行SQL語句.................. 216
9.1.4 將結果集返回到數組........... 217
9.1.5 從結果集中獲取一行作為對象... 221
9.1.6 從結果集中獲取一行作為枚舉數組223
9.1.7 從結果集中獲取一行作為關聯數組224
9.1.8 獲取查詢結果集中的記錄數..... 225
9.1.9 釋放記憶體..................... 226
9.1.10 關閉連線.................... 226
9.2 管理MySQL資料庫中的數據............ 227
9.2.1 添加數據..................... 227
9.2.2 編輯數據..................... 233
9.2.3 刪除數據..................... 237
9.3 難點解答........................... 240
9.3.1 mysqli_fetch_array、mysqli_fetch_
assoc、mysqli_fetch_row和mysqli_
fetch_object函式區別......... 240
9.3.2 mysqli_prepare() 和mysqli_stmt_
prepare()的區別.............. 240
9.4 小結............................... 241
9.5 動手糾錯........................... 241
第10 章PDO 資料庫抽象層....243
10.1 什麼是PDO......................... 244
10.1.1 PDO概述..................... 244
10.1.2 PDO特點..................... 244
10.1.3 安裝PDO ..................... 244
10.2 PDO連線資料庫..................... 245
10.2.1 PDO構造函式................. 245
10.2.2 DSN詳解..................... 245
10.3 PDO中執行SQL語句.................. 246
10.4 PDO中獲取結果集................... 247
10.4.1 fetch()方法................. 247
10.4.2 fetchAll()方法.............. 251
10.4.3 fetchColumn()方法........... 252
10.5 PDO中捕獲SQL語句中的錯誤.......... 254
10.5.1 默認模式.................... 254
10.5.2 警告模式.................... 256
10.5.3 異常模式.................... 256
10.6 PDO中的錯誤處理................... 257
10.6.1 errorCode()方法............. 257
10.6.2 errorInfo()方法............. 258
10.7 PDO中的事務處理................... 258
10.8 難點解答.......................... 261
10.8.1 為什麼PDO能夠防止SQL注入.... 261
10.8.2 PDO類和PDOStatement的關係... 261
10.9 小結.............................. 261
10.10 動手糾錯......................... 261
第3 篇高級套用............ 263
第11 章Cookie 與Session...264
11.1 Cookie管理........................ 265
11.1.1 了解Cookie .................. 265
11.1.2 創建Cookie .................. 266
11.1.5 Cookie的生命周期............ 269
11.1.6 7天免登錄功能的實現......... 269
11.2 Session管理....................... 275
11.2.1 了解Session ................. 275
11.2.2 創建會話.................... 275
11.2.3 使用Session實現判斷用戶登錄
功能........................ 277
11.3 Session高級套用................... 279
11.3.2 Session快取................. 280
11.3.3 Session資料庫存儲........... 281
11.4 難點解答.......................... 286
11.4.1 Cookie和Session的區別....... 286
11.4.2 Cookie和Session的關係....... 286
11.5 小結.............................. 287
11.6 動手糾錯.......................... 287
第12 章圖形圖像處理技術...289
12.1 在PHP中載入GD庫................... 290
12.2 GD庫的套用........................ 290
12.2.1 創建一個簡單的圖像.......... 290
12.2.2 使用GD2函式在照片上添加文字291
12.2.3 使用圖像處理技術生成驗證碼293
12.3 JpGraph圖像繪製庫................. 297
12.3.1 JpGraph的下載............... 298
12.3.2 JpGraph的中文配置........... 298
12.3.3 JpGraph的使用............... 299
12.4 JpGraph典型套用................... 300
12.4.1 使用柱形圖統計圖書月銷售量.. 300
12.4.2 使用折線圖統計三本圖書銷售量302
12.4.3 使用3D餅形圖統計各類商品的
年銷售額比率................ 303
12.5 難點解答.......................... 305
12.5.1 JpGraph中文亂碼............. 305
12.5.2 如何使用JpGraph的其他圖形... 305
12.6 小結.............................. 305
12.7 動手糾錯.......................... 305
第13 章檔案系統...........307
13.1 檔案處理.......................... 308
13.1.1 打開/關閉檔案............... 308
13.1.2 從檔案中讀取數據............ 309
13.1.3 將數據寫入檔案.............. 315
13.1.4 操作檔案.................... 317
13.2 目錄處理.......................... 318
13.2.1 打開/關閉目錄............... 318
13.2.2 瀏覽目錄.................... 319
13.2.3 操作目錄.................... 319
13.3 檔案上傳.......................... 320
13.3.1 配置php.ini檔案............. 320
13.3.2 預定義變數$_FILES ........... 321
13.3.3 檔案上傳函式................ 323
13.3.4 多檔案上傳.................. 328
13.4 檔案下載.......................... 330
13.5 難點解答.......................... 333
13.5.1 f ile()函式和f ile_get_contents()
函式的區別.................. 333
13.5.2 設定表單屬性enctype ......... 333
13.6 小結.............................. 333
13.7 動手糾錯.......................... 334
第14 章PHP 與Ajax 技術.....335
14.1 Ajax概述.......................... 336
14.1.1 什麼是Ajax .................. 336
14.1.2 Ajax的開發模式.............. 336
14.1.3 Ajax的優點.................. 337
14.2 Ajax使用的技術.................... 337
14.2.1 Ajax與JavaScript ............ 337
14.2.2 XMLHttpRequest對象.......... 337
14.3 Ajax技術的典型套用................ 340
14.3.1 套用Ajax技術檢測用戶名...... 340
14.3.2 使用jQuery的Ajax操作函式.... 345
14.4 難點解答.......................... 347
14.4.1 瀏覽器兼容性問題............ 347
14.4.2 使用jQuery的Ajax方法........ 348
14.5 小結.............................. 348
14.6 動手糾錯.......................... 348
第15 章ThinkPHP 框架.......351
15.1 ThinkPHP簡介...................... 352
15.1.1 ThinkPHP框架的特點.......... 352
15.1.2 環境要求.................... 353
15.1.3 下載ThinkPHP框架............ 353
15.2 ThinkPHP基礎...................... 353
15.2.1 目錄結構.................... 353
15.2.2 自動生成目錄................ 354
15.2.3 快速生成新模組.............. 356
15.2.4 模組化設計.................. 357
15.2.5 執行流程.................... 358
15.2.6 命名規範.................... 358
15.3 ThinkPHP的配置.................... 359
15.3.1 配置格式.................... 359
15.3.2 調試配置.................... 360
15.4 ThinkPHP的控制器.................. 361
15.4.1 控制器...................... 361
15.4.2 輸入變數.................... 363
15.4.3 請求類型.................... 364
15.4.4 URL生成..................... 364
15.4.5 跳轉和重定向................ 365
15.4.6 Ajax返回.................... 367
15.5 ThinkPHP的模型.................... 368
15.5.1 模型定義.................... 368
15.5.2 實例化模型.................. 369
15.5.3 連線資料庫.................. 370
15.5.4 連貫操作.................... 371
15.5.5 CURD操作.................... 372
15.6 ThinkPHP的視圖.................... 377
15.6.1 模板定義.................... 377
15.6.2 模板賦值.................... 378
15.6.3 指定模板檔案................ 378
15.7 內置ThinkTemplate模板引擎......... 382
15.7.1 變數輸出.................... 382
15.7.2 使用函式.................... 383
15.7.3 內置標籤.................... 384
15.7.4 模板繼承.................... 384
15.8 難點解答.......................... 385
15.8.1 什麼是單一入口? ............. 385
15.8.2 為什麼要使用MVC設計模式? .... 385
15.9 小結.............................. 385
第4 篇項目實戰
第16 章51 購商城...........388
16.1 系統功能設計...................... 389
16.1.1 系統功能結構................ 389
16.1.2 系統業務流程................ 390
16.2 系統開發必備...................... 390
16.2.1 系統開發環境................ 390
16.2.2 資料夾組織結構.............. 391
16.3 資料庫設計........................ 391
16.3.1 資料庫概要說明.............. 391
16.3.2 資料庫邏輯設計.............. 392
16.4 前台用戶模組設計.................. 395
16.4.1 會員註冊模組................ 395
16.4.2 會員登錄模組................ 398
16.5 前台首頁模組設計.................. 399
16.5.1 商品分類模組................ 401
16.5.2 商品列表模組................ 405
16.6 購物車模組設計.................... 406
16.6.1 添加商品至購物車............ 406
16.6.2 查看購物車商品.............. 408
16.6.3 清空購物車.................. 410
16.6.4 添加收貨地址................ 411
16.6.5 提交訂單.................... 413
16.7 後台模組設計...................... 415
16.7.1 管理員登錄模組.............. 415
16.7.2 後台首頁.................... 416
16.7.3 商品模組.................... 416
16.7.4 訂單模組.................... 417
16.7.5 其他模組.................... 418
16.8 小結.............................. 420