內容簡介
第1篇為技能學習篇,主要包括初識PHP、PHP環境搭建、PHP語言基礎、流程控制語句、函式、字元串、數組、日期和時間、PHP與Web頁面互動、會話管理、檔案系統、面向對象、PHP與MySQL資料庫、adodb類庫、Smarty模板、Zend Framework框架等內容;第2篇為範例演練篇,主要包括基礎知識、關鍵技術、新技術相關的範例;第3篇為項目實戰篇,主要內容包括新聞發布系統、明日企業網、明日知道、明日編程詞典4個小型項目;第4篇為商業系統篇,主要包括一個大型的商業項目,即明日科技書店。本書附有配套DVD光碟,光碟中提供有書中全部實例和項目的原始碼,這些原始碼全部經過精心調試,能夠在Windows XP、Windows Server 2003及Windows 7作業系統下編譯和運行。
本書適用於PHP初學者、編程愛好者,同時也可以作為培訓機構、大中專院校老師和學生的學習參考用書。
圖書目錄
第1篇 技能學習篇第1章 初識PHP
1.1 本章學習任務 4
1.2 確立學習信心 4
1.2.1 程式設計師的成長之路 4
1.2.2 如何學好編程 5
1.2.3 獲取開發環境 6
1.2.4 代碼編輯工具 7
1.3 分析PHP語言 8
1.3.1 PHP概述 8
1.3.2 PHP語言相關術語 9
1.3.3 PHP語言發展前景 11
1.4 探討學習經驗 12
1.4.1 PHP參考手冊 12
1.4.2 PHP網路資源 13
1.4.3 成功案例 13
1.5 精彩回顧 15
第2章 PHP環境搭建
2.1 本章學習任務 18
2.2 AppServ——PHP開發環境集成化 18
2.2.1 套用AppServ集成化安裝包搭建PHP開發環境 18
2.2.2 測試AppServ是否安裝成功 21
2.3 IIS+PHP+MySQL——獨立搭建PHP開發環境 22
2.3.1 安裝PHP 5.3.1 23
2.3.2 安裝MySQL 24
2.3.3 安裝IIS伺服器 30
2.3.4 配置IIS伺服器 31
2.3.5 測試獨立環境是否搭建成功 32
2.4 Linux下搭建PHP開發環境 33
2.4.1 安裝Apache伺服器 33
2.4.2 安裝MySQL資料庫 35
2.4.3 安裝PHP 5語言 36
2.4.4 配置PHP 38
2.4.5 測試PHP開啟環境是否搭建成功 38
2.5 Dreamweaver開發工具 39
2.5.1 通過Dreamweaver創建站點 39
2.5.2 套用Dreamweaver開發第一個PHP程式 40
2.6 ZendStudio開發工具 42
2.6.1 Zend Studio for Eclipse的安裝 42
2.6.2 套用Zend Studio開發第二個PHP程式 44
2.7 phpMyAdmin 48
2.7.1 Windows下phpMyAdmin的安裝配置 48
2.7.2 Linux下phpMyAdmin的安裝配置 48
2.8 實戰檢驗 49
2.9 疑難解惑 50
2.9.1 伺服器配置錯誤 50
2.9.2 PHP的配置錯誤 51
2.10 精彩回顧 51
第3章 PHP語言基礎
3.1 本章學習任務 54
3.2 PHP工作原理 55
3.3 PHP語法基礎 56
3.3.1 PHP標記符 56
3.3.2 PHP的注釋 57
3.4 PHP數據類型 58
3.4.1 整型 58
3.4.2 布爾型 59
3.4.3 浮點型 59
3.4.4 字元串型 60
3.4.5 複合數據類型 62
3.4.6 特殊數據類型 63
3.4.7 數據類型的獲取與檢測 63
3.4.8 數據類型轉換 64
3.5 PHP常量 66
3.5.1 聲明常量 66
3.5.2 獲取常量 66
3.5.3 判斷常量 67
3.5.4 常量套用 67
3.5.5 預定義常量 67
3.6 PHP變數 68
3.6.1 聲明變數 68
3.6.2 變數賦值 69
3.6.3 變數作用域 70
3.6.4 可變變數 70
3.6.5 預定義變數 71
3.7 PHP運算符 72
3.7.1 字元串運算符 72
3.7.2 算術運算符 72
3.7.3 賦值運算符 73
3.7.4 自增、自減運算符 73
3.7.5 位運算符 74
3.7.6 邏輯運算符 74
3.7.7 比較運算符 75
3.7.8 條件運算符 75
3.7.9 運算符的優先權 76
3.8 PHP的表達式 77
3.9 包含檔案 77
3.9.1 include語句 77
3.9.2 require語句 79
3.9.3 include_once語句 79
3.9.4 require_once語句 80
3.10 實戰檢驗 81
3.10.1 通過PHP預定義變數獲取上傳檔案的大小 81
3.10.2 套用包含語句完成電子商務網站主頁的設計 81
3.11 疑難解惑 82
3.11.1 技巧一(編寫標準風格的PHP代碼) 82
3.11.2 技巧二(充分發揮PHP注釋的作用) 83
3.11.3 疑難分析(register-globals選項對PHP變數的影響) 84
3.11.4 注意事項(掌握常用的輸出語句) 86
3.12 精彩回顧 88
第4章 流程控制語句
4.1 本章學習任務 90
4.2 程式的控制結構 90
4.2.1 順序結構 90
4.2.2 選擇(分支)結構 91
4.2.3 循環結構 91
4.3 條件控制語句 92
4.3.1 if條件語句 92
4.3.2 switch…case分支控制語句 94
4.4 循環控制語句 96
4.4.1 while循環語句 96
4.4.2 do…while循環語句 97
4.4.3 for循環語句 98
4.4.4 foreach循環 99
4.5 跳轉控制語句 100
4.5.1 break語句跳出循環體 100
4.5.2 continue語句跳出本次循環 101
4.6 實戰檢驗 102
4.6.1 套用if語句控制檔案的訪問許可權 103
4.6.2 套用switch語句設計網站主頁 103
4.6.3 套用for循環讀取資料庫中的數據 104
4.7 疑難解惑 104
4.7.1 流程控制語句的替代語法 104
4.7.2 for循環語句的其他格式 105
4.7.3 用不同的語句實現相同的功能 105
4.7.4 避免錯誤地使用continue語句 106
4.8 精彩回顧 106
第5章 函式
5.1 本章學習任務 108
5.2 自定義函式 108
5.2.1 函式的命名規則 108
5.2.2 自定義函式格式 109
5.2.3 自定義函式的調用 109
5.2.4 自定義函式的參數 110
5.2.5 自定義函式的返回值 111
5.3 內置函式 112
5.3.1 IMAGE圖像函式——典型的內置函式 112
5.3.2 imagecreate函式——創建畫布 113
5.3.3 imagecolorallocate函式——顏色處理 113
5.3.4 imagegif函式——輸出圖像 114
5.3.5 imagestring函式——輸出文字 115
5.3.6 套用Jpgraph類庫創建3D餅形圖 117
5.4 實戰檢驗 118
5.4.1 套用PHP內置函式對字元串進行截取 118
5.4.2 套用自定義函式截取中文字元串 118
5.5 疑難解惑 120
5.5.1 什麼是變數函式 120
5.5.2 PHP內置函式館載入 121
5.6 精彩回顧 121
第6章 字元串
6.1 本章學習任務 124
6.2 轉義、還原字元串 125
6.3 截取字元串 126
6.4 分割、合成字元串 128
6.5 替換字元串 129
6.5.1 str_ireplace()函式 129
6.5.2 substr_replace()函式 130
6.6 檢索字元串 131
6.6.1 strstr()函式 131
6.6.2 substr_count()函式 132
6.7 去除字元串中空白字元和特殊字元 133
6.7.1 ltrim()函式 133
6.7.2 rtrim()函式 134
6.7.3 trim()函式 134
6.8 字元串與HTML轉換 135
6.9 實戰檢驗 136
6.9.1 超長文本的分頁輸出 136
6.9.2 查詢關鍵字描紅 137
6.9.3 購物車中數據的讀取 138
6.10 疑難解惑 139
6.11 精彩回顧 140
第7章 數組
7.1 本章學習任務 142
7.2 聲明數組 143
7.2.1 用戶創建數組 143
7.2.2 套用函式創建數組 144
7.2.3 創建二維數組 145
7.3 數組類型 146
7.4 遍歷、輸出數組 147
7.4.1 遍歷數組 147
7.4.2 輸出數組元素 149
7.5 數組函式 149
7.5.1 統計數組元素個數 149
7.5.2 向數組中添加元素 149
7.5.3 獲取數組中最後一個元素 150
7.5.4 刪除數組中重複元素 150
7.5.5 獲取數組中指定元素的鍵名 151
7.6 實戰檢驗 152
7.6.1 打亂數組中元素的順序 152
7.6.2 生成線上考試題 153
7.7 疑難解惑 153
7.7.1 創建數組函式擴展 154
7.7.2 為什麼$array[str]錯了 154
7.7.3 如何設定PHP的錯誤級別 155
7.8 精彩回顧 156
第8章 日期和時間
8.1 本章學習任務 158
8.2 時區設定 159
8.2.1 在php.ini檔案中設定時區 159
8.2.2 通過date_default_timezone_set()函式設定時區 159
8.3 UNIX時間戳 160
8.3.1 獲取日期的時間戳 160
8.3.2 獲取當前時間戳 161
8.3.3 日期、時間轉換為UNIX時間戳 161
8.4 日期和時間處理 162
8.4.1 格式化日期和時間 163
8.4.2 獲取日期和時間信息 165
8.4.3 檢驗日期和時間的有效性 166
8.5 實戰檢驗 166
8.5.1 獲取系統當前時間和時間戳 166
8.5.2 比較兩個時間的大小 167
8.5.3 倒計時 167
8.5.4 計算程式的運行時間 167
8.5.5 網頁鬧鐘 168
8.6 疑難解惑 169
8.7 精彩回顧 170
第9章 PHP與Web頁面互動
9.1 本章學習任務 172
9.2 Web表單——PHP外交部發言人 173
9.3 通過form標記創建表單 174
9.4 表單元素——form家族成員 175
9.4.1 輸入域標記input 175
9.4.2 選擇域標記select和option 176
9.4.3 文本域標記textarea 177
9.5 POST和GET——表單元素提交方式 178
9.5.1 套用GET方式提交表單 179
9.5.2 套用POST方式提交表單 179
9.6 在Web頁中嵌入PHP腳本 180
9.6.1 在HTML中嵌入PHP腳本 181
9.6.2 在表單中嵌入PHP腳本 182
9.7 $_POST[]和$_GET[]——表單元素值的獲取方法 182
9.7.1 $_POST[]全局變數 183
9.7.2 $_GET[]全局變數 183
9.8 通過URL傳遞數據 183
9.8.1 使用URL傳遞數據 183
9.8.2 獲取URL傳遞的數據 184
9.8.3 URL傳遞數據的編碼和解碼 185
9.9 實戰檢驗 186
9.10 疑難解惑 187
9.10.1 注意表單元素名稱大小寫的區別 188
9.10.2 表單元素操作技巧兩則 188
9.10.3 養成為URL傳遞的數據進行編碼的習慣 188
9.11 精彩回顧 189
第10章 會話管理——數據的臨時檔案館
10.1 本章學習任務 192
10.2 SESSION——記錄用戶的瀏覽狀態 193
10.2.1 創建會話 193
10.2.2 SESSION的生命周期 196
10.3 SESSION的高級套用 199
10.3.1 SESSION臨時檔案 199
10.3.2 SESSION的快取 200
10.3.3 SESSION資料庫存儲 201
10.4 COOKIE——客戶端數據的永久存儲 203
10.4.1 創建COOKIE 204
10.4.2 讀取COOKIE 206
10.4.3 刪除COOKIE 206
10.5 實戰檢驗 207
10.5.1 通過SESSION判斷用戶的許可權 207
10.5.2 通過COOKIE實現自動登錄 209
10.6 疑難解惑 210
10.6.1 延長SESSION的生命周期 210
10.6.2 緩解伺服器壓力,提高網站訪問速度 211
10.6.3 如何控制客戶端COOKIE 211
10.6.4 COOKIE套用的注意事項 211
10.6.5 SESSION和COOKIE的區別 212
10.7 精彩回顧 212
第11章 檔案系統——PHP檔案掌門人
11.1 本章學習任務 214
11.1.1 本章體系結構 214
11.1.2 布置任務 214
11.2 解析檔案操作方法 215
11.2.1 打開檔案 215
11.2.2 讀取檔案 217
11.2.3 寫入檔案 221
11.2.4 關閉檔案 223
11.3 闡述目錄處理函式 223
11.3.1 打開目錄 223
11.3.2 瀏覽目錄 224
11.3.3 關閉目錄 224
11.4 剖析檔案上傳、下載原理 226
11.4.1 控制上傳檔案——配置php.ini檔案 226
11.4.2 判斷上傳檔案——全局變數$_FILES 227
11.4.3 檔案上傳——move_uploaded_file()函式 228
11.4.4 檔案下載 230
11.5 實戰檢驗 230
11.5.1 通過文本檔案統計網站訪問量 230
11.5.2 規範化的檔案上傳 232
11.6 疑難解惑 234
11.6.1 如何訪問遠程檔案 234
11.6.2 檔案操作技術擴展 234
11.6.3 目錄操作技術擴展 235
11.7 精彩回顧 235
第12章 面向對象——編程方法的革命
12.1 本章學習任務 238
12.1.1 追溯面向對象思想的來源 238
12.1.2 本章的學習任務 238
12.1.3 本章的實戰任務 239
12.2 一切皆是對象 239
12.2.1 類 239
12.2.2 對象 240
12.2.3 面向對象的特點 240
12.3 類的聲明 241
12.3.1 類的定義 241
12.3.2 成員屬性 242
12.3.3 成員方法 243
12.4 類的實例化 243
12.4.1 創建對象 243
12.4.2 訪問類中的成員 244
12.4.3 特殊的訪問方法——“$this”和“::” 245
12.4.4 構造方法和析構方法 245
12.5 封裝性 246
12.5.1 public(公共成員) 247
12.5.2 private(私有成員) 247
12.5.3 protected(保護成員) 248
12.6 繼承性 248
12.6.1 類的繼承——extends關鍵字 248
12.6.2 類的繼承——parent::關鍵字 249
12.6.3 覆蓋父類方法 250
12.7 抽象類和接口 251
12.7.1 抽象類 251
12.7.2 接口 252
12.8 多態性 254
12.8.1 通過繼承實現多態 254
12.8.2 通過接口實現多態 255
12.9 面向對象——常用關鍵字 256
12.9.1 final關鍵字 256
12.9.2 static關鍵字——聲明靜態類成員 256
12.9.3 clone關鍵字——克隆對象 257
12.9.4 對象比較 258
12.9.5 instanceof關鍵字——對象類型檢測 258
12.10 面向對象——常用魔術方法 258
12.10.1 __set()和__get()方法 259
12.10.2 __isset()和__unset()方法 259
12.10.3 __call()方法 259
12.10.4 __toString()方法 260
12.10.5 __autoload()方法 260
12.11 實戰檢驗 261
12.11.1 封裝一個資料庫連線類 261
12.11.2 封裝一個資料庫操作類 262
12.12 疑難解惑 264
12.12.1 類名稱的定義 264
12.12.2 自動載入對象 264
12.12.3 構造函式的妙用 264
12.13 精彩回顧 265
第13章 PHP與MySQL資料庫——黃金組合
13.1 本章學習任務 268
13.1.1 系統學習任務 268
13.1.2 經典實戰任務 268
13.2 MySQL概述 269
13.2.1 MySQL的特點 269
13.2.2 SQL和MySQL 269
13.3 MySQL伺服器的啟動和關閉 270
13.3.1 啟動MySQL伺服器 270
13.3.2 連線MySQL伺服器 271
13.3.3 關閉MySQL伺服器 271
13.4 MySQL資料庫 272
13.4.1 創建資料庫 272
13.4.2 選擇資料庫 273
13.4.3 刪除資料庫 273
13.5 MySQL數據表 274
13.5.1 創建表 274
13.5.2 查看錶 275
13.5.3 修改表 276
13.5.4 重命名表 277
13.5.5 刪除表 277
13.6 MySQL數據 278
13.6.1 添加數據 278
13.6.2 修改數據 279
13.6.3 刪除數據 279
13.6.4 查詢數據 280
13.7 MySQL數據類型 282
13.7.1 數字類型 283
13.7.2 字元串類型 283
13.7.3 日期和時間類型 285
13.8 PHP操作MySQL資料庫的步驟 285
13.9 PHP操作MySQL資料庫的方法 286
13.9.1 套用mysql_connect()函式連線MySQL伺服器 286
13.9.2 套用mysql_select_db()函式選擇MySQL資料庫 287
13.9.3 套用mysql_query()函式執行SQL語句 288
13.9.4 套用mysql_fetch_array()函式將結果集返回到數組中 289
13.9.5 套用mysql_fetch_row()函式從結果集中獲取一行作為枚舉數組 290
13.9.6 套用mysql_num_rows()函式獲取查詢結果集中的記錄數 291
13.10 實戰檢驗 292
13.10.1 通過insert語句添加圖書信息 292
13.10.2 通過select語句查詢圖書信息 294
13.11 疑難解惑 295
13.11.1 避免輸出中文字元串時出現亂碼 295
13.11.2 資料庫編碼格式的選擇 296
13.12 精彩回顧 296
第14章 ADODB類庫——資料庫管家
14.1 本章學習任務 298
14.2 ADODB概述 299
14.3 熟悉操作流程 300
14.4 連線資料庫系統和資料庫 301
14.4.1 套用ADONewConnection()函式連線資料庫系統 301
14.4.2 套用PConnect()函式持久化連線資料庫 301
14.4.3 套用Connect()函式非持久化連線資料庫 301
14.4.4 ADODB連線MySQL資料庫 301
14.5 公共變數 302
14.6 操作SQL語句 303
14.6.1 套用execute()函式執行SQL語句 303
14.6.2 套用SelectLimit()函式控制select查詢語句的起始位置 304
14.6.3 套用GetInsertSQL()、GetUpdateSQL()函式添加、更新數據 305
14.6.4 操作SQL語句的其他方法 306
14.7 控制結果集 307
14.7.1 控制指針的方法 307
14.7.2 控制結果集內容的方法 307
14.7.3 日期格式和數據類型的轉換 309
14.8 ADODB中的分頁 310
14.9 錯誤處理 310
14.10 實戰檢驗 311
14.10.1 ADODB連線、運算元據庫類 311
14.10.2 ADODB分頁類 313
14.11 疑難解惑 316
14.11.1 本章程式運行的前提條件 316
14.11.2 一個小巧的分頁函式——ADODB_Pager()函式 316
14.11.3 如何連線Microsoft SQL Server資料庫 317
14.11.4 如何連線Access資料庫 317
14.12 精彩回顧 317
第15章 Smarty模板——PHP程式的動靜分離
15.1 本章學習任務 320
15.1.1 系統學習任務 320
15.1.2 經典實戰任務 320
15.2 走進Smarty模板 321
15.2.1 Smarty模板引擎的下載 322
15.2.2 Smarty模板引擎的安裝 323
15.2.3 Smarty模板引擎的配置 323
15.2.4 走進Smarty模板引擎 325
15.3 Smarty模板設計——靜態頁處理 326
15.3.1 基本語法(注釋、函式和屬性) 327
15.3.2 變數 327
15.3.3 變數調節器 328
15.3.4 組合修改器 329
15.3.5 內建函式(動態檔案、模板檔案的包含和流程控制語句) 330
15.3.6 自定義函式 334
15.3.7 配置檔案 336
15.4 Smarty程式設計——動態檔案操作 338
15.4.1 SMARTY_PATH常量 338
15.4.2 Smarty變數 338
15.4.3 Smarty方法 338
15.4.4 Smarty快取 339
15.5 實戰檢驗 340
15.5.1 在Smarty中通過truncate方法截取字元串 341
15.5.2 套用Smarty+ADODB完成數據的分頁顯示 342
15.6 疑難解惑 344
15.6.1 快取的合理套用 344
15.6.2 什麼是較好的Smarty配置方案 344
15.7 精彩回顧 344
第16章 Zend Framework框架
16.1 本章學習任務 346
16.1.1 本章知識體系 346
16.1.2 本章的實踐任務 346
16.2 Zend Framework的MVC介紹 347
16.2.1 Zend Framework概述 347
16.2.2 Zend Framework 常用組件 347
16.2.3 MVC原理 348
16.3 Zend Framework的MVC環境搭建 349
16.3.1 環境配置 349
16.3.2 框架結構 350
16.3.3 創建流程 350
16.3.4 Zend Framework的編碼標準 353
16.4 Zend_Acl許可權管理 354
16.4.1 角色(role) 355
16.4.2 資源(resource) 355
16.4.3 Zend_Acl套用 355
16.5 Zend_Auth身份認證 356
16.5.1 Zend_Auth適配器 357
16.5.2 身份持久認證 358
16.5.3 資料庫認證 360
16.6 Zend_Cache快取服務 364
16.6.1 Zend_Cache的原理 365
16.6.2 Zend_Cache前端 366
16.6.3 Zend_Cache後端 369
16.7 Zend_Db資料庫操作 370
16.7.1 Zend_Db_Adapter資料庫操作 370
16.7.2 Zend_Db_Table資料庫操作 370
16.7.3 數據表類 372
16.8 Zend_File檔案控制 375
16.8.1 使用Zend_File_Transfer_Adapter_Http實現POST方式檔案上傳 376
16.8.2 對上傳檔案的合理性驗證 377
16.8.3 為上傳增加過濾規則 378
16.9 Zend_Layout網站布局 378
16.9.1 Zend_Layout概述 378
16.9.2 Zend_Layout的使用方法 379
16.9.3 Zend_Layout套用實例 379
16.10 Zend_Paginator分頁 381
16.10.1 Zend_Paginator簡介 381
16.10.2 Zend_Paginator實現分頁的方法 381
16.10.3 Zend_Paginator實現分頁的套用 383
16.11 實戰檢驗 385
16.11.1 使用Zend Framework實現用戶身份的驗證 385
16.11.2 使用Zend Framework實現查詢結果的關鍵字描紅顯示 386
16.12 疑難解惑 388
16.12.1 MVC框架目錄的命名 388
16.12.2 Zend_Cache組件的套用場合 389
16.13 精彩回顧 389
第2篇 範例演練篇
第17章 基礎知識——學以致用
17.1 過濾HTML非法字元 394
17.1.1 範例功能演示 394
17.1.2 開發思路指引 394
17.1.3 專家難點解析 395
17.1.4 設計過程詳解 395
17.1.5 範例開發手記 396
17.1.6 進階與提高 396
17.2 上傳圖片並添加水印 397
17.2.1 範例功能演示 397
17.2.2 開發思路指引 397
17.2.3 專家難點解析 397
17.2.4 設計過程詳解 399
17.2.5 範例開發手記 400
17.2.6 進階與提高 401
17.3 利用WebBrowser控制項進行列印 401
17.3.1 範例功能演示 401
17.3.2 開發思路指引 402
17.3.3 專家難點解析 402
17.3.4 設計過程詳解 402
17.3.5 範例開發手記 402
17.3.6 進階與提高 403
17.4 套用正則表達式驗證用戶註冊信息 404
17.4.1 範例功能演示 404
17.4.2 開發思路指引 404
17.4.3 專家難點解析 405
17.4.4 設計過程詳解 406
17.4.5 範例開發手記 407
17.4.6 進階與提高 408
17.5 套用JavaScript+GD2函式製作無刷新驗證碼 409
17.5.1 範例功能演示 409
17.5.2 開發思路指引 409
17.5.3 專家難點解析 410
17.5.4 設計過程詳解 410
17.5.5 範例開發手記 411
17.5.6 進階與提高 412
17.6 套用JavaScript實現複選框的全選、反選和不選 412
17.6.1 範例功能演示 412
17.6.2 開發思路指引 413
17.6.3 專家難點解析 413
17.6.4 設計過程詳解 413
17.6.5 範例開發手記 414
17.6.6 進階與提高 415
第18章 關鍵技術——百鍊成鋼
18.1 JpGraph類庫——創建3D餅形圖 418
18.1.1 範例功能演示 418
18.1.2 開發思路指引 418
18.1.3 專家難點解析 419
18.1.4 設計過程詳解 419
18.1.5 範例開發手記 420
18.1.6 進階與提高 420
18.2 MD5加密——用戶註冊密碼保護 421
18.2.1 範例功能演示 421
18.2.2 開發思路指引 421
18.2.3 專家難點解析 421
18.2.4 設計過程詳解 422
18.2.5 範例開發手記 422
18.2.6 進階與提高 423
18.3 AJAX無刷新分頁 424
18.3.1 範例功能演示 424
18.3.2 開發思路指引 424
18.3.3 專家難點解析 425
18.3.4 設計過程詳解 427
18.3.5 範例開發手記 429
18.3.6 進階與提高 429
18.4 購物車 431
18.4.1 範例功能演示 431
18.4.2 開發思路指引 432
18.4.3 專家難點解析 432
18.4.4 設計過程詳解 434
18.4.5 範例開發手記 437
18.4.6 進階與提高 437
18.5 套用CKEditor網頁編輯器 438
18.5.1 範例功能演示 438
18.5.2 開發思路指引 439
18.5.3 專家難點解析 439
18.5.4 設計過程詳解 440
18.5.5 範例開發手記 441
18.5.6 進階與提高 442
18.6 MySQL存儲過程——用戶註冊 443
18.6.1 範例功能演示 443
18.6.2 開發思路指引 443
18.6.3 專家難點解析 443
18.6.4 設計過程詳解 445
18.6.5 範例開發手記 445
18.6.6 進階與提高 446
18.7 MySQL事務處理——銀行安全轉賬 447
18.7.1 範例功能演示 447
18.7.2 開發思路指引 447
18.7.3 專家難點解析 448
18.7.4 設計過程詳解 448
18.7.5 範例開發手記 449
18.7.6 進階與提高 449
18.8 PHP國際化——開發支持中、英文的程式 450
18.8.1 範例功能演示 450
18.8.2 開發思路指引 450
18.8.3 專家難點解析 451
18.8.4 設計過程詳解 452
18.8.5 範例開發手記 453
18.8.6 進階與提高 454
第19章 新技術——熟能生巧
19.1 jQuery生成網頁特效 456
19.1.1 範例功能演示 456
19.1.2 開發思路指引 456
19.1.3 專家難點解析 456
19.1.4 設計過程詳解 458
19.1.5 範例開發手記 459
19.1.6 進階與提高 459
19.2 jQuery製作級聯選單 459
19.2.1 範例功能演示 459
19.2.2 開發思路指引 460
19.2.3 專家難點解析 460
19.2.4 設計過程詳解 461
19.2.5 範例開發手記 462
19.2.6 進階與提高 462
19.3 jQuery驗證表單元素 463
19.3.1 範例功能演示 463
19.3.2 開發思路指引 464
19.3.3 專家難點解析 464
19.3.4 設計過程詳解 465
19.3.5 範例開發手記 467
19.3.6 進階與提高 467
19.4 register_function()方法——註冊模板函式 468
19.4.1 範例功能演示 468
19.4.2 開發思路指引 468
19.4.3 專家難點解析 468
19.4.4 設計過程詳解 469
19.4.5 範例開發手記 471
19.4.6 進階與提高 471
19.5 zend_mail傳送郵件——激活註冊用戶 472
19.5.1 範例功能演示 472
19.5.2 開發思路指引 472
19.5.3 專家難點解析 473
19.5.4 設計過程詳解 474
19.5.5 範例開發手記 475
19.5.6 進階與提高 475
19.6 PHP偽靜態——隱藏PHP檔案擴展名 476
19.6.1 範例功能演示 476
19.6.2 開發思路指引 476
19.6.3 專家難點解析 477
19.6.4 設計過程詳解 477
19.6.5 範例開發手記 479
19.6.6 進階與提高 479
第3篇 項目實戰篇
第20章 新聞發布系統——畢業設計的首選
20.1 新聞發布系統概述 484
20.2 開發背景 484
20.3 需求分析 484
20.3.1 功能分析 484
20.3.2 運行環境 484
20.4 功能結構 485
20.5 資料庫設計 485
20.5.1 資料庫概念設計 485
20.5.2 創建資料庫及數據表 487
20.6 MVC框架結構的搭建 488
20.6.1 MVC開發模式介紹 488
20.6.2 Zend Framework的MVC目錄結構 489
20.6.3 Zend Framework的MVC結構創建過程 490
20.7 技術攻關 492
20.7.1 站內搜尋——使用空格分隔多個關鍵字 492
20.7.2 關鍵字描紅 495
20.7.3 隱藏PHP檔案後綴——偽靜態技術 497
20.8 前台首頁設計 498
20.8.1 前台首頁概述 498
20.8.2 前台首頁技術分析 499
20.8.3 前台首頁的實現過程 499
20.9 後台管理模組設計 502
20.9.1 後台管理模組概述 502
20.9.2 後台管理模組技術分析 503
20.9.3 管理員登錄實現過程 504
20.9.4 新聞管理模組實現過程 505
20.9.5 用戶管理模組實現過程 506
20.10 程式調試與錯誤處理 506
20.10.1 語法錯誤 507
20.10.2 語義錯誤 509
20.10.3 注釋錯誤 509
20.10.4 運行錯誤 509
20.10.5 邏輯錯誤 511
20.10.6 錯誤提示頁面 511
20.11 開發總結 512
第21章 明日企業網——企業網站開發模板
21.1 明日企業網概述 514
21.2 開發背景 514
21.3 需求分析 514
21.4 功能結構 515
21.5 資料庫設計 516
21.5.1 資料庫概念設計 516
21.5.2 創建資料庫及數據表 517
21.6 技術攻關 519
21.6.1 Smarty模板 520
21.6.2 最簡單的網頁框架 521
21.6.3 ADODB類庫 521
21.6.4 封裝分頁類 522
21.7 首頁設計 523
21.7.1 首頁概述 523
21.7.2 首頁技術分析 523
21.7.3 首頁的實現過程 524
21.8 產品展示設計 525
21.8.1 產品展示概述 525
21.8.2 產品展示技術分析 527
21.8.3 產品展示實現過程 527
21.9 後台管理系統設計 529
21.9.1 後台管理系統概述 529
21.9.2 後台管理系統技術分析 529
21.9.3 後台管理系統實現過程 531
21.10 程式調試與錯誤處理 535
21.10.1 SQL語句的返回機制 535
21.10.2 錯誤處理 536
21.11 開發總結 536
第22章 明日知道——程式設計師的十萬個為什麼
22.1 明日知道概述 538
22.2 開發背景 538
22.3 需求分析 538
22.4 功能結構 538
22.5 資料庫設計 539
22.5.1 資料庫分析 539
22.5.2 資料庫概念設計 539
22.5.3 創建資料庫及數據表 541
22.6 技術攻關 542
22.6.1 類似Google搜尋引擎的搜尋條 543
22.6.2 使用空格分隔多關鍵字 546
22.6.3 關鍵字描紅 549
22.6.4 製作線上編輯器 550
22.7 MVC框架結構搭建 553
22.8 首頁設計 554
22.8.1 首頁概述 554
22.8.2 首頁技術分析 554
22.8.3 首頁的實現過程 555
22.9 用戶模組設計 557
22.9.1 用戶模組概述 557
22.9.2 用戶模組技術分析 557
22.9.3 用戶註冊的實現過程 559
22.9.4 用戶登錄的實現過程 560
22.10 發表問題模組設計 562
22.10.1 發表問題模組概述 563
22.10.2 發表問題模組技術分析 563
22.10.3 發表問題模組實現過程 564
22.11 回復問題模組設計 566
22.11.1 回復問題模組概述 566
22.11.2 回復問題模組技術分析 566
22.11.3 回復問題模組實現過程 567
22.12 程式調試與錯誤處理 568
22.12.1 項目開發過程中常見錯誤及解決方法 568
22.12.2 自定義錯誤頁面 569
22.13 開發總結 569
第23章 明日編程詞典——線上體驗版
23.1 明日編程詞典概述 572
23.2 開發背景 572
23.3 需求分析 572
23.4 功能結構 572
23.5 資料庫設計 573
23.5.1 創建資料庫 573
23.5.2 創建數據表 574
23.5.3 分離、附加資料庫 575
23.6 技術攻關 576
23.6.1 樹狀導航選單設計 577
23.6.2 向Flash中傳遞參數 578
23.6.3 Smarty註冊模板函式——讀取檔案 580
23.6.4 框架設計網站布局 581
23.7 Smarty模板 583
23.8 ADODB類庫 584
23.9 首頁設計 585
23.9.1 首頁概述 585
23.9.2 首頁技術分析 586
23.9.3 首頁的實現過程 586
23.10 網站模組導航設計 586
23.10.1 網站模組導航概述 587
23.10.2 網站模組導航技術分析 587
23.10.3 網站模組導航實現過程 588
23.11 內容樹狀導航設計 589
23.11.1 內容樹狀導航概述 589
23.11.2 內容樹狀導航技術分析 590
23.11.3 內容樹狀導航實現過程 591
23.12 內容展示區設計 594
23.12.1 內容展示區概述 594
23.12.2 內容展示區技術分析 594
23.12.3 內容展示區實現過程 594
23.13 程式調試與錯誤處理 595
23.14 開發總結 595
第4篇 商業系統篇
第24章 明日科技書店
24.1 明日科技書店概述 600
24.2 開發背景 600
24.3 需求分析 600
24.4 功能結構圖 601
24.5 系統流程圖 602
24.6 開發環境 603
24.7 資料庫設計 603
24.7.1 資料庫分析 603
24.7.2 創建資料庫 603
24.7.3 創建數據表 604
24.7.4 數據表的結構 604
24.8 功能模組構思 606
24.9 公共類設計 607
24.9.1 資料庫連線類 607
24.9.2 資料庫管理類 609
24.9.3 Smarty模板引擎配置類 610
24.9.4 購物車類 610
24.9.5 分頁類 612
24.9.6 工具類 613
24.10 首頁設計 615
24.10.1 首頁概述 615
24.10.2 首頁技術分析 616
24.10.3 首頁實現過程 617
24.11 用戶模組設計 618
24.11.1 用戶模組概述 618
24.11.2 用戶註冊 618
24.11.3 用戶登錄 621
24.11.4 用戶中心 623
24.11.5 找回登錄密碼 625
24.12 圖書展示模組設計 626
24.12.1 圖書分類展示 626
24.12.2 特別圖書展示 629
24.12.3 圖書試讀展示 630
24.12.4 圖書詳細信息展示 632
24.13 圖書訂購模組設計 635
24.13.1 購物車的實現 635
24.13.2 填寫收貨人信息 638
24.13.3 確認訂購信息 639
24.13.4 選擇支付方式 640
24.13.5 確認支付信息 641
24.14 後台登錄頁設計 642
24.14.1 後台登錄頁概述 642
24.14.2 後台登錄頁實現過程 643
24.15 系統管理模組 644
24.15.1 系統信息設定 644
24.15.2 更改管理員密碼 645
24.16 圖書類別管理模組 645
24.16.1 圖書大類管理 646
24.16.2 圖書小類管理 647
24.16.3 出版社分類管理 649
24.17 圖書管理模組 651
24.17.1 圖書信息管理 651
24.17.2 圖書試讀管理 654
24.18 用戶信息管理模組 655
24.18.1 用戶信息管理 655
24.18.2 用戶反饋信息管理 656
24.19 訂單信息管理模組 656
24.19.1 訂單信息列表管理 657
24.19.2 訂單詳細信息管理 657
24.20 程式調試與錯誤處理 658
24.21 編寫用戶使用手冊 659
24.22 系統發布 662
24.23 開發總結 664