目 錄
第1章 初識PHP 1
1.1
PHP的來龍去脈 1
1.1.1
PHP的概念 1
1.1.2
PHP的發展歷程 2
1.1.3
PHP的優勢 2
1.2
PHP能干什麼 3
1.3
PHP 7的新特點 4
1.4
PHP常用開發工具 6
1.4.1
PHP代碼開發工具 6
1.4.2
網頁設計工具 7
1.4.3
文本編輯工具 7
1.5 高手甜點 8
第2章 PHP 7服務器環境配置 9
2.1
PHP服務器概述 9
2.2 安裝PHP 7前的準備工作 10
2.2.1
軟硬件環境 10
2.2.2
獲取PHP 7安裝資源包 10
2.3
PHP 7 IIS服務器安裝配置 12
2.3.1
IIS簡介及其安裝 12
2.3.2
PHP的安裝 13
2.3.3
虛擬目錄的設置 16
2.4
PHP 7 Apache服務器的環境搭建 17
2.4.1
Apache簡介 17
2.4.2
關閉原有的網站服務器 18
2.4.3
安裝Apache 18
2.4.4
將PHP與Apache建立關聯 19
2.5 新手的福音——PHP環境的集成軟件 20
2.6 實戰演練——我的個PHP程序 23
2.7 高手甜點 24
第3章 PHP的基本語法 25
3.1
PHP標識符 25
3.1.1
短風格 25
3.1.2
script風格 26
3.1.3
ASP風格 26
3.2 編碼規範 26
3.2.1
什麼是編碼規範 26
3.2.2
PHP中的編碼規範 27
3.3 常 量 28
3.3.1
聲明和使用常量 29
3.3.2
內置常量 29
3.4 變 量 31
3.4.1
PHP中的變量聲明 31
3.4.2
可變變量與變量的引用 32
3.4.3
變量作用域 33
3.4.4
變量的銷毀 36
3.5 數據類型 37
3.5.1
什麼是類型 37
3.5.2
整型 38
3.5.3
浮點型 38
3.5.4
布爾型 38
3.5.5
字符串型 38
3.5.6
數組型 39
3.5.7
對像型 41
3.5.8
NULL型 42
3.5.9
資源類型 42
3.5.10
數據類型之間的相互轉換 42
3.6 標量類型的聲明 43
3.7 運算符 44
3.7.1
算術運算符 44
3.7.2
字符串運算符 45
3.7.3
賦值運算符 46
3.7.4
比較運算符 46
3.7.5
邏輯運算符 47
3.7.6
按位運算符 48
3.7.7
否定控制運算符 49
3.7.8
錯誤控制運算符 49
3.7.9
3.7.10
運算符的優先級和結合規則 50
3.8 表達式 50
3.9 實戰演練——創建多維數組
51
3.10
高手甜點 51
第4章 PHP的語言結構 53
4.1 內置函數 53
4.2 自定義函數 54
4.2.1
自定義和調用函數 54
4.2.2
向函數傳遞參數值 55
4.2.3
向函數傳遞參數引用 55
4.2.4
從函數中返回值 56
4.2.5
對函數的引用 57
4.2.6
對函數取消引用 58
4.3 包含文件 58
4.3.1
require和include 58
4.3.2
include_once和require_once 59
4.4 流程控制 60
4.4.1
條件控制結構 60
4.4.2
循環控制結構 65
4.5 實戰演練1——條件分支結構綜合應用
72
4.6 實戰演練2——循環控制結構綜合應用
73
4.7 高手甜點 74
第5章 字符串和正則表達式 75
5.1 字符串的單引號和雙引號
75
5.2 字符串的連接符 77
5.3 字符串的基本操作 78
5.3.1
手動和自動轉義字符串中的字符 78
5.3.2
計算字符串的長度 78
5.3.3
字符串單詞統計 79
5.3.4
清理字符串中的空格 80
5.3.5
字符串的切分與組合 80
5.3.6
字符串子串的截取 81
5.3.7
字符串子串替換 82
5.3.8
字符串查找 83
5.3.9
大小寫轉換 84
5.4 什麼是正則表達式 85
5.5 正則表達式語法規則 85
5.6 實戰演練——創建酒店繫統在線訂房表 90
5.7 高手甜點 93
第6章 PHP數組 94
6.1 什麼是數組 94
6.2 數組的類型 95
6.2.1
數字索引數組 95
6.2.2
關聯索引數組 96
6.3
PHP 常量數組 97
6.4 數組構造 97
6.4.1
一維數組 97
6.4.2
多維數組 97
6.5 遍歷數組 99
6.5.1
遍歷一維數字索引數組 99
6.5.2
遍歷一維聯合索引數組 100
6.5.3
遍歷多維數組 101
6.6 數組排序 102
6.6.1
一維數組排序 102
6.6.2
多維數組排序 104
6.7 字符串與數組的轉換 105
6.8 向數組中添加素
106
6.8.1
向數組素 106
6.8.2
從數組素 107
6.9 查詢數組素 109
6.10
統素個數 110
6.11
刪除數組中素 112
6.12
調換數組中的素值 113
6.13
實戰演練——數組的序列化 113
6.14
高手甜點 114
第7章 時間和日期 115
7.1 繫統時區設置 115
7.1.1
時區劃分 115
7.1.2
時區設置 116
7.2
PHP日期和時間函數 116
7.2.1
關於UNIX時間戳 116
7.2.2
獲取當前時間戳 116
7.2.3
獲取當前日期和時間 117
7.2.4
使用時間戳獲取日期信息 118
7.2.5
檢驗日期的有效性 120
7.2.6
輸出格式化時間戳的日期和時間 121
7.2.7
顯示本地化的日期和時間 122
7.2.8
將日期和時間解析為UNIX時間戳 123
7.2.9
日期和時間在PHP和MySQL數據格式之間的轉換 124
7.3 實戰演練1——比較兩個時間的大小
124
7.4 實戰演練2——實現倒計時功能 125
7.5 高手甜點 126
第8章 面向對像編程 127
8.1 類和對像的介紹 127
8.2
PHP中類的操作 128
8.2.1
類的聲明 128
8.2.2
成員屬性 129
8.2.3
成員方法 129
8.2.4
類的實例化 130
8.2.5
訪問類中的成員屬性和方法 130
8.3 構造方法和析構方法 132
8.4 訪問方法 134
8.5 類的繼承 136
8.6 高級特性 137
8.6.1
靜態屬性和方法 137
8.6.2
final類和方法 138
8.7 抽像類和接口 139
8.7.1
抽像類 139
8.7.2
接口 140
8.8 面向對像的多態性 142
8.8.1
通過繼承實現多態 142
8.8.2
通過接口實現多態 144
8.9 高手甜點 145
第9章 錯誤處理和異常處理 146
9.1 常見的錯誤和異常 146
9.2 錯誤處理 150
9.2.1
php.ini中的錯誤處理機制 150
9.2.2
應用DIE語句調試 150
9.2.3
自定義錯誤和錯誤觸發器 151
9.2.4
錯誤記錄 154
9.3 異常處理 155
9.3.1
異常的基本處理方法
155
9.3.2
自定義的異常處理器 157
9.3.3
處理多個異常 159
9.3.4
設置頂層異常處理器 160
9.4 實戰演練——處理異常或錯誤
161
9.5 高手甜點 162
第10章 PHP與Web頁面交互 164
10.1
使用動態內容 164
10.2
表單與PHP 165
10.3
表單設計 166
10.3.1
表單基本結構 166
10.3.2
文本框 166
10.3.3
選項框 167
10.3.4
單選按鈕 169
10.3.5
下拉列表 170
10.3.6
重置按鈕 171
10.3.7
提交按鈕 172
10.4
傳遞數據的兩種方法 174
10.4.1
用POST方式傳遞數據 174
10.4.2
用GET方式傳遞數據 175
10.5
PHP獲取表單傳遞數據的方法 176
10.6
PHP對URL傳遞的參數進行編碼 176
10.7
實戰演練——PHP與Web表單的綜合應用 177
10.8
高手甜點 179
第11章 文件與目錄操作 181
11.1
文件操作 181
11.1.1
文件數據的寫入 181
11.1.2
文件數據的讀取 185
11.2
目錄操作 186
11.3
文件的上傳 191
11.4
實戰演練——編寫文本類型的訪客計算器 193
11.5
高手甜點 194
第12章 圖形圖像處理 195
12.1
在PHP中加載GD庫 195
12.2
圖形圖像的典型應用案例 197
12.2.1
創建一個簡單的圖像 197
12.2.2
使用GD2函數在照片上添加文字 199
12.2.3
使用TrueType字體處理中文生成圖片 200
12.3
Jpgraph庫的使用
202
12.3.1
Jpgraph的安裝 203
12.3.2
Jpgraph的配置 203
12.3.3
制作柱形圖與折線圖統計圖 203
12.3.4
制作圓形統計圖 205
12.4
實戰演練——制作3D餅形統計圖 207
12.5
高手甜點 208
第13章 Cookie和會話管理 210
13.1
Cookie基本操作 210
13.1.1
什麼是Cookie 210
13.1.2
創建Cookie 211
13.1.3
讀取Cookie 211
13.1.4
刪除Cookie 212
13.2
認識Session 214
13.2.1
什麼是Session 214
13.2.2
Session的基本功能 214
13.2.3
Cookie與Session 214
13.2.4
在Cookie或URL中存儲Session ID 215
13.3
會話管理 215
13.3.1
創建會話 215
13.3.2
注冊會話變量 216
13.3.3
使用會話變量 216
13.3.4
注銷和銷毀會話變量 217
13.4
實戰演練——會話管理的綜合應用 218
13.5
高手甜點 219
第14章 MySQL數據庫基礎 221
14.1
什麼是MySQL 221
14.1.1
客戶機/服務器結構 221
14.1.2
MySQL版本 222
14.1.3
MySQL優勢 223
14.2
啟動服務並登錄MySQL數據庫 223
14.2.1
啟動MySQL服務 223
14.2.2
登錄MySQL數據庫 224
14.2.3
配置Path變量 226
14.3
MySQL數據庫的基本操作 228
14.3.1
創建數據庫 228
14.3.2
查看數據庫 228
14.3.3
刪除數據庫 229
14.3.4
選擇數據庫 229
14.4
MySQL數據表的基本操作 230
14.4.1
創建數據表 230
14.4.2
查看數據表 231
14.4.3
修改數據表 233
14.4.4
刪除數據表 234
14.5
MySQL語句的操作 234
14.5.1
插入記錄 234
14.5.2
查詢記錄 235
14.5.3
修改記錄 235
14.5.4
刪除記錄 236
14.6
MySQL數據庫的備份與還原 236
14.6.1
數據備份 236
14.6.2
數據還原 243
14.7
高手甜點 245
第15章 PHP操作MySQL數據庫 247
15.1
PHP訪問MySQL數據庫的一般步驟 247
15.2
連接數據庫前的準備工作 248
15.3
訪問數據庫 249
15.3.1
使用mysqli_connect()函數連接MySQL服務器 249
15.3.2
使用mysqli_select_db()函數更改默認的數據庫 250
15.3.3
使用mysqli_close()函數關閉MySQL連接 251
15.3.4
使用mysqli_query()函數執行SQL語句 251
15.3.5
獲取查詢結果集中的記錄數 252
15.3.6
獲取結果集中的一條記錄作為枚舉數組 253
15.3.7
獲取結果集中的記錄作為關聯數組 254
15.3.8
獲取結果集中的記錄作為對像 255
15.3.9
使用mysqli_fetch_array()函數獲取結果集記錄 255
15.3.10
使用mysqli_free_result()函數釋放資源 256
15.4
實戰演練1——PHP操作數據庫 256
15.5
實戰演練2——使用insert語句動態
添加用戶信息 258
15.6
實戰演練3—使用select語句查詢數據信息 260
15.7
高手甜點 262
第16章 PDO數據庫抽像類庫 263
16.1
PDO概述 263
16.2
PDO的安裝 264
16.3
使用PDO操作MySQL 264
16.3.1
連接MySQL數據庫的方法 265
16.3.2
使用PDO時的try catch錯誤處理結構 265
16.3.3
使用PDO執行SQL的選擇語句 268
16.3.4
使用PDO獲取返回數據的類方法 268
16.3.5
使用PDO執行SQL的添加、修改語句 271
16.3.6
使用PDO執行SQL的刪除語句 271
16.4
實戰演練——PDO的prepare表述 272
16.5
高手甜點 274
第17章 JavaScript編程基礎 275
17.1
認識JavaScript 275
17.1.1
什麼是JavaScript 275
17.1.2
JavaScript的特點
276
17.2
JavaScript在HTML中的使用 277
17.2.1
在HTML網頁頭中嵌入JavaScript代碼 277
17.2.2
在HTML網頁中嵌入JavaScript代碼 278
17.2.3
在HTML素事件中嵌入JavaScript代碼 279
17.2.4
在HTML中調用已經存在的JavaScript文件 280
17.2.5
通過JavaScript偽URL引入JavaScript腳本代碼 281
17.3
JavaScript的基本語法 282
17.3.1
執行順序 282
17.3.2
區分大小寫 283
17.3.3
分號與空格 283
17.3.4
對代碼行進行折行 283
17.3.5
注釋 283
17.4
JavaScript的數據結構 285
17.4.1
標識符 285
17.4.2
關鍵字 286
17.4.3
保留字 286
17.4.4
常量 287
17.4.5
變量 287
17.5
代碼中的數據類型 289
17.5.1
typeof 運算符 289
17.5.2
Undefined類型 291
17.5.3
Null類型 291
17.5.4
Boolean類型 292
17.5.5
Number類型 293
17.5.6
String類型 294
17.6
條件判斷語句 294
17.6.1
if語句 294
17.6.2
if…else語句 296
17.6.3
switch語句 297
17.7
循環控制語句 299
17.7.1
while語句 299
17.7.2
do…while語句 300
17.7.3
for循環 301
17.8
在PHP中調用JavaScript代碼 302
17.8.1
驗素的值是否為空 302
17.8.2
實現即時驗證效果 303
17.9
實戰演練——制作樹形菜單 306
17.10
高手甜點 312
第18章 PHP與XML技術 313
18.1
XML概念 313
18.2
XML語法基礎 315
18.2.1
XML文檔的組成和聲明 315
18.2.2
素介紹 316
18.2.3
實體引用 319
18.2.4
XML命名空間 319
18.2.5
XML DTD 320
18.2.6
使用CDATA標記 321
18.3
將XML文檔轉換為HTML加以輸出 321
18.4
在PHP中創建XML文檔 322
18.5
使用SimpleXML擴展 323
18.5.1
創建SimpleXMLElement對像 323
18.5.2
訪問特素和屬性 324
18.5.3
添加素和屬性 325
18.6
實戰演練——動態創建XML文檔 326
18.7
高手甜點 327
第19章 PHP與Ajax的綜合應用 328
19.1
Ajax概述 328
19.1.1
什麼是Ajax 328
19.1.2
Ajax素 331
19.1.3
CSS與Ajax 332
19.2
Ajax快速入門 332
19.2.1
全面剖析XMLHttpRequest對像 333
19.2.2
發出Ajax請求 335
19.2.3
處理服務器響應 336
19.3
在PHP中應用Ajax技術 338
19.4
高手甜點 343
第20章 Smarty模板 344
20.1
MVC概述 344
20.2
什麼是模板引擎 345
20.3 Smarty概述 346
20.3.1
什麼是Smarty 346
20.3.2
Smarty與MVC 346
20.4
Smarty的安裝和配置 347
20.4.1
Smarty的下載和安裝 347
20.4.2
個Smarty程序 347
20.5
Smarty模板設計 348
20.5.1
Smarty模板文件 348
20.5.2
Smarty標識 349
20.5.3
Smarty變量 351
20.5.4
Smarty數組 352
20.6
Smarty中的流程控制語句 353
20.7
高手甜點 355
第21章 Zend Framework 356
21.1
什麼是Zend Framework 356
21.2
Zend Framework的目錄結構 357
21.3
Zend Framework的安裝與使用 357
21.3.1
Zend Framework的安裝 357
21.3.2
創建一個新的Zend Framework應用 358
21.4
PHP與Zend Framework的基本操作 360
21.4.1
在Zend Framework應用中創建控制層文件 361
21.4.2
在Zend Framework的控制層文件中添加一個action 361
21.4.3
在Zend Framework中創建布局 363
21.4.4
在Zend Framework中的數據庫操作 363
21.4.5
在Zend Framework中創建表單 364
21.5
高手甜點 366
第22章 PHP MySQL開發論壇實戰 367
22.1
需求分析 367
22.1.1
網站的需求分析 367
22.1.2
網站的功能模塊分析 368
22.2
數據庫分析 368
22.2.1
分析數據庫 368
22.2.2
創建數據表 369
22.3
論壇的代碼實現 370
22.3.1
數據庫連接相關文件 370
22.3.2
論壇主頁面 375
22.3.3
新用戶注冊頁面 379
22.3.4
論壇帖子的相關頁面 382
22.3.5
後臺管理繫統的相關頁面 391
第23章 開發酒店管理繫統網站
417
23.1
網站的需求分析 417
23.2
數據庫分析 418
23.3
酒店管理繫統的實現 420
23.3.1
使用Yii框架的沙箱模式建立項目 420
23.3.2
開始goodone項目編程 422
23.3.3
構建message 繫統 426
23.3.4
構建product 繫統 433
23.3.5
構建order繫統 435
23.3.6
構建customer 繫統 436