第1章 環境搭建 1
1.1 PHP開發環境和準備工作 2
1.2 Windows下Apache+MySQL+PHP的安裝 2
1.2.1 安裝Apache服務器 2
1.2.2 安裝PHP 5 5
1.2.3 安裝MySQL服務器 5
1.3 配置Apache服務器和PHP 5 9
1.4 在Windows下架設IIS+PHP的執行環境 10
1.5 在Linux下的安裝配置 12
1.5.1 安裝Apache服務器 12
1.5.2 安裝MySQL服務器 13
1.5.3 安裝PHP 5 14
1.5.4 啟動/關閉服務器 15
1.6 在Windows下使用組合包 16
第2章 PHP基礎 17
2.1 PHP變量 18
2.1.1 PHP變量 18
2.1.2 PHP預定義變量 19
2.2 流程控制語句 19
2.2.1 條件控制語句 19
2.2.2 循環控制語句 22
2.2.3 break和continue轉移控制語句 26
2.3 Cookie和Session 27
2.3.1 Cookie管理 27
2.3.2 Session管理 31
2.3.3 Cookie與Session的比較 32
2.4 PHP數組 33
2.4.1 什麽是數組 33
2.4.2 聲明數組 33
2.4.3 遍歷數組 34
2.4.4 字符串與數組的轉換 35
2.4.5 統計數組元素個數 36
2.5 PHP的日期和時間 36
2.5.1 處理日期和時間 36
2.5.2 UNIX時間戳 40
2.5.3 系統時區設置 41
2.5.4 開發中遇到的日期和時間問題 41
2.6 PHP字符串 42
2.6.1 單引號和雙引號的區別 42
2.6.2 字符串的連接符 43
2.6.3 字符串操作 44
2.7 PHP的文件 45
2.7.1 文件處理 45
2.7.2 文件上傳 48
2.8 面向對象 48
2.8.1 面向對象的基本概念 48
2.8.2 PHP與對象 49
第3章 MySQL數據庫基礎 57
3.1 MySQL數據庫 58
3.1.1 MySQL簡介 58
3.1.2 MySQL的特點 58
3.1.3 啟動MySQL服務器 58
3.1.4 連接和斷開MySQL服務器 59
3.1.5 停止MySQL服務器 61
3.1.6 MySQL數據庫的備份和恢復 62
3.2 使用MySQL命令行 63
3.2.1 MySQL數據庫操作 63
3.2.2 MySQL數據表操作 64
3.2.3 MySQL語句操作 68
3.3 phpMyAdmin圖形化管理工具 70
3.3.1 phpMyAdmin介紹 70
3.3.2 phpMyAdmin的安裝和配置 70
3.3.3 操作數據庫 72
3.3.4 操作數據表 74
3.3.5 使用SQL語句操作數據表 76
3.3.6 管理數據記錄 78
3.3.7 生成和執行MySQL數據庫腳本 80
第4章 Smarty模板 83
4.1 Smarty簡介 84
4.1.1 什麽是Smarty 84
4.1.2 Smarty與MVC 84
4.1.3 Smarty的特點 84
4.2 Smarty的安裝配置 84
4.2.1 Smarty下載與安裝 84
4.2.2 第壹個Smarty程序 85
4.2.3 配置Smarty 86
4.3 Smarty模板設計 87
4.3.1 Smarty模板文件 87
4.3.2 註釋 87
4.3.3 變量 87
4.3.4 修飾變量(variable modifers) 90
4.3.5 內置函數 91
4.4 Smarty程序設計 96
4.4.1 Smarty中的常用方法 96
4.4.2 Smarty的配置變量 97
4.4.3 Smarty緩存 98
4.5 Smarty應用 99
4.5.1 留言板首頁 99
4.5.2 發表留言 101
4.5.3 查看留言 102
4.5.4 修改留言 104
第5章 註冊及登錄驗證模塊 107
5.1 註冊及登錄驗證模塊概述 108
5.1.1 用戶註冊流程 108
5.1.2 用戶登錄流程 108
5.1.3 找回密碼流程 109
5.2 熱點關鍵技術 109
5.2.1 防SQL註入技術 109
5.2.2 Ajax技術實現無刷新驗證 109
5.2.3 驗證碼技術 111
5.2.4 E-mail激活技術 113
5.2.5 應用鍵盤響應事件驗證信息是否合法 113
5.2.6 應用Cookie技術實現自動登錄 115
5.3 註冊及登錄驗證模塊 116
5.3.1 數據庫設計 116
5.3.2 數據庫類 117
5.3.3 註冊功能的實現 119
5.3.4 登錄功能的實現 125
5.3.5 驗證碼的實現與刷新 129
5.3.6 找回密碼的實現 130
5.4 程序調試 131
第6章 上傳下載模塊 133
6.1 上傳下載模塊概述 134
6.2 熱點關鍵技術 134
6.2.1 php.ini配置文件 134
6.2.2 上傳表單設置 135
6.2.3 預定義變量$_FILES 135
6.2.4 上傳文件函數 136
6.2.5 多文件上傳 137
6.2.6 文件下載 137
6.3 實現過程 138
6.3.1 數據庫設計 139
6.3.2 文件上傳功能的實現(包括多文件上傳) 140
6.3.3 文件下載的實現 142
6.4 程序調試 145
第7章 分頁顯示模塊 147
7.1 分頁顯示模塊概述 148
7.2 熱點關鍵技術 148
7.2.1 自定義函數替換超長文本中特殊字符 148
7.2.2 自定義函數控制超長文本的輸出 149
7.2.3 連接數據庫類的創建 149
7.2.4 分頁類的創建 150
7.3 分頁類模塊 151
7.3.1 Smarty模板的安裝和配置 152
7.3.2 ADODB的配置和連接 152
7.3.3 分頁類模塊的頁面設計 153
7.3.4 分頁類模塊的程序開發 154
7.4 分頁顯示模塊 155
7.4.1 PHP超長文本分頁功能的實現 155
7.4.2 Ajax無刷新分頁功能的實現 156
7.4.3 PHP跳轉分頁功能的實現 157
7.4.4 PHP上下分頁功能的實現 160
7.5 程序調試 162
第8章 網站計數分析模塊 163
8.1 網站計數分析模塊概述 164
8.2 熱點關鍵技術 164
8.2.1 防止重復計數 164
8.2.2 通過array_unique()函數獲取網站當月IP訪問量 166
8.2.3 將數組中的數據寫入字符串中 167
8.3 簡單數字計數器 167
8.4 圖形數字計數器 170
8.5 GD2圖形計數器 171
8.6 數據庫數字計數器 172
8.7 Cookie計數器 174
8.8 Session無刷新計數器 175
8.9 網站計數器分析模塊 175
8.9.1 計數器功能的實現 176
8.9.2 網站訪問量統計分析 180
8.9.3 應用GD2函數動態創建折線圖 182
8.10 程序調試 184
第9章 留言本模塊 185
9.1 留言本模塊概述 186
9.1.1 留言本概述 186
9.1.2 留言本的功能結構 186
9.1.3 留言本系統流程 187
9.2 熱點關鍵技術 187
9.2.1 什麽是敏感詞 187
9.2.2 過濾敏感詞 188
9.2.3 添加敏感詞到文本文件中 189
9.2.4 讀取文本文件中的敏感詞 191
9.2.5 驗證碼在當前頁驗證 193
9.2.6 實現復選框的全選和反選 195
9.3 實現過程 196
9.3.1 MySQL數據庫設計 198
9.3.2 定義數據庫訪問類 198
9.3.3 簽寫留言及過濾敏感詞的實現 201
9.3.4 分頁查看留言及版主信息回顯的實現 203
9.3.5 檢索留言及回復信息的實現 207
9.3.6 版主回復留言功能的實現 210
9.3.7 批量刪除留言及回復信息的實現 213
9.3.8 版主悄悄話管理功能的實現 214
9.4 程序調試 215
第10章 搜索引擎模塊 217
10.1 搜索引擎模塊概述 218
10.1.1 搜索引擎定義 218
10.1.2 搜索引擎工作流程 218
10.2 熱點關鍵技術 218
10.2.1 中文分詞的概念 218
10.2.2 RMM分詞技術 219
10.2.3 過濾標點符號 222
10.2.4 高亮顯示查詢關鍵詞 224
10.2.5 搜索計時 226
10.2.6 截取中文字符串時屏蔽亂碼 227
10.2.7 添加訪問頁到收藏夾 227
10.3 實現過程 228
10.3.1 RMM分詞查詢的實現 228
10.3.2 在查詢結果中二次搜索功能的實現 232
10.3.3 高級搜索功能的實現 234
10.3.4 知名站點互聯網查詢功能的實現 239
10.4 程序調試 243
第11章 投票系統模塊 245
11.1 投票系統模塊概述 246
11.2 投票關鍵技術 246
11.2.1 動態生成投票主題及選項 246
11.2.2 通過3D餅形圖分析投票結果 249
11.2.3 通過柱形圖分析投票結果 250
11.2.4 Cookie投票限制 251
11.2.5 Session投票限制 252
11.2.6 通過IP限制重復投票 253
11.2.7 E-mail地址激活 254
11.3 簡易投票系統 255
11.3.1 動態生成投票主題 256
11.3.2 動態添加投票選項內容 256
11.3.3 投票主題內容管理 258
11.3.4 投票功能的實現 259
11.4 復雜投票系統 261
11.4.1 數據庫設計 262
11.4.2 用戶註冊 262
11.4.3 用戶登錄 264
11.4.4 投票主題瀏覽 265
11.4.5 投票內容提交 266
11.4.6 刷新投票結果 270
11.5 程序調試 271
第12章 購物車模塊 273
12.1 購物車模塊概述 274
12.1.1 購物車功能概述 274
12.1.2 購物車操作流程 274
12.2 熱點關鍵技術 275
12.2.1 Smarty模板的安裝配置 275
12.2.2 Smarty模板動靜分離 276
12.2.3 Session購物車的創建 277
12.2.4 通過數組函數判斷購物車是否存在指定商品 277
12.2.5 驗證輸入商品數量的值是否有效 278
12.3 實現過程 279
12.3.1 商品展示功能的實現 279
12.3.2 添加商品功能的實現 281
12.3.3 刪除購物車中商品功能的實現 282
12.3.4 更改購物車中商品數量功能的實現 283
12.3.5 統計購物車中商品金額功能的實現 284
12.3.6 清空購物車中商品功能的實現 285
12.3.7 填寫訂單信息功能的實現 286
12.3.8 生成訂單功能的實現 288
12.4 錯誤處理 289
第13章 在線支付模塊 291
13.1 在線支付模塊概述 292
13.2 熱點關鍵技術 293
13.2.1 收貨人信息驗證 293
13.2.2 動態生成訂單號 295
13.2.3 WebBrowser打印 296
13.2.4 工行支付 297
13.2.5 支付寶支付 298
13.3 實現過程 299
13.3.1 商品展示功能的實現 299
13.3.2 購物車功能的實現 301
13.3.3 訂單打印和預覽功能的實現 303
13.3.4 提交訂單功能的實現 305
13.3.5 訂單查詢功能的實現 308
13.4 程序調試 309
第14章 聊天室模塊 311
14.1 聊天室模塊概述 312
14.2 熱點關鍵技術 312
14.2.1 應用框架布局聊天室主頁面 312
14.2.2 文件操作技術 314
14.2.3 定時刷新技術刪除不發言用戶 316
14.2.4 滾屏顯示時滾動條定位技術 316
14.2.5 屏蔽刷新技術 317
14.2.6 監控客戶端瀏覽器 319
14.3 聊天室模塊 319
14.3.1 配置文件(config.php) 319
14.3.2 公***函數文件 320
14.3.3 用戶登錄驗證 321
14.3.4 發言功能的實現 323
14.3.5 用戶列表功能的實現 327
14.3.6 公***聊天功能和私聊功能的實現 329
14.3.7 自動刪除掉線用戶功能的實現 330
14.4 程序調試 331
第15章 論壇模塊 333
15.1 論壇模塊概述 334
15.1.1 系統功能描述 334
15.1.2 數據庫設計 335
15.2 熱點關鍵技術 336
15.2.1 樹狀導航菜單 337
15.2.2 帖子置頂 338
15.2.3 帖子引用 339
15.2.4 帖子收藏 340
15.2.5 屏蔽回貼 341
15.2.6 連接遠程MySQL數據庫 342
15.2.7 小紙條信息的無刷新輸出 343
15.3 論壇模塊設計 344
15.3.1 帖子發布功能的實現 344
15.3.2 帖子瀏覽功能的實現 347
15.3.3 帖子回復功能的實現 351
15.3.4 結帖功能的實現 354
15.3.5 站內搜索功能的實現 355
15.3.6 設置帖子類別 356
15.3.7 頂帖管理功能的實現 359
15.3.8 我的信息管理 360
15.3.9 我的好友管理 361
15.3.10 數據備份和恢復 362
15.4 程序調試 363
第16章 許願墻模塊 365
16.1 許願墻模塊概述 366
16.1.1 許願墻的功能結構 366
16.1.2 許願墻的系統流程 366
16.2 熱點關鍵技術 366
16.2.1 DIV+CSS頁面樣式布局 366
16.2.2 實現可拖放DOM技術移動許願字條 369
16.2.3 解決PHP與Ajax的中文亂碼問題 371
16.2.4 對QQ號文本框禁止中文輸入 372
16.2.5 分類選擇心情圖案 373
16.2.6 限制紙條內容的長度 374
16.2.7 在當前頁驗證校驗碼對與錯 375
16.2.8 定義生成指定範圍的許願字條隨機算法 377
16.2.9 解析IP獲取用戶所在城市 378
16.2.10 與許願者通過QQ交談 379
16.3 實現過程 380
16.3.1 MySQL數據庫設計 380
16.3.2 簽寫許願字條,並實現字條實時預覽 381
16.3.3 簽寫許願字條後,該字條置頂 385
16.3.4 單擊指定字條時,該字條置上顯示 386
16.3.5 雙擊許願字條該字條置頂顯示,並屏蔽整個頁面 387
16.3.6 分米(按距離)顯示許願字條 388
16.3.7 搜索許願字條、並將字條置頂亮顯 395
16.3.8 許願字條按福氣值排行 397
16.3.9 應用Ajax無刷新技術為他人祈福 400
16.3.10 應用Ajax無刷新技術輪顯最新10條許願 401
16.3.11 應用Jpgraph圖形類庫實現3D餅形圖表按地域統計分析許願比率 403
16.3.12 應用柱形圖按地域統計分析許願人數及比例 409
16.3.13 愛墻列表、許願字條高級搜索功能的實現 411
16.3.14 移動許願字條 415
16.3.15 關閉許願字條 415
16.4 程序調試 416
第17章 博客模塊 419
17.1 博客概述 420
17.2 熱點關鍵技術 420
17.2.1 MySQL中的時間與日期類型 420
17.2.2 數據庫備份技術 421
17.2.3 在JavaScript中使用“Copy”命令 422
17.2.4 應用JavaScript對復選框進行操作 422
17.3 博客 423
17.3.1 數據庫設計 423
17.3.2 配置文件及公***函數文件 426
17.3.3 博客空間個人首頁的設計 426
17.3.4 我的文章功能的實現 429
17.3.5 文章瀏覽功能的實現 430
17.3.6 文章管理模塊的實現 432
17.3.7 好友管理模塊的實現 440
17.3.8 小紙條管理模塊的實現 444
17.3.9 用戶管理模塊的實現 446
17.4 程序調試 450
第18章 網絡象棋遊戲模塊 451
18.1 網絡象棋遊戲模塊概述 452
18.1.1 象棋概述 452
18.1.2 布置棋盤 452
18.1.3 棋步規則 453
18.2 熱點關鍵技術 453
18.2.1 什麽是Ajax 453
18.2.2 Ajax的優點 453
18.2.3 屏蔽棋盤信息亂碼 454
18.2.4 遊戲的規則算法 455
18.2.5 30分鐘不走棋自動退出遊戲房間 461
18.3 實現過程 461
18.3.1 自動安裝數據庫 461
18.3.2 創建遊戲房間 463
18.3.3 更改玩家名稱 465
18.3.4 復制遊戲網址給好友 466
18.3.5 象棋遊戲模式 467
18.3.6 信息提示器 471
18.3.7 Ajax無刷新聊天功能 473
18.3.8 退出遊戲房間 474
18.3.9 結束遊戲 475
18.4 程序調試 475
第19章 短信發送模塊 477
19.1 短信發送模塊概述 478
19.2 熱點關鍵技術 479
19.2.1 Web Service技術 479
19.2.2 Socket編程技術 479
19.2.3 手機號碼的提取 480
19.2.4 批量添加手機號碼 481
19.2.5 通過JavaScript驗證提交手機號碼格式 483
19.2.6 生日提醒 484
19.3 Socket編程發送短信 486
19.4 Web Service發送短信 487
19.4.1 數據庫的設計 487
19.4.2 生日提醒功能的實現 488
19.4.3 常用短語提取功能的實現 490
19.4.4 Web Service發送短信功能的實現 491
19.5 程序調試 494
第20章 電子郵件模塊 495
20.1 電子郵件模塊概述 496
20.1.1 電子郵件簡介 496
20.1.2 電子郵件基本原理 496
20.2 熱點關鍵技術 497
20.2.1 SMTP服務器的安裝和配置 497
20.2.2 POP3服務器的安裝和配置 499
20.2.3 imap電子郵件系統函數的加載 500
20.2.4 無刷新獲取郵件地址 502
20.2.5 無刷新刪除郵件地址 504
20.2.6 Ajax無刷新統計郵件封數 504
20.3 電子郵件模塊 505
20.3.1 登錄郵件服務器功能的實現 505
20.3.2 發送郵件功能的實現 507
20.3.3 查看未讀郵件功能的實現 510
20.3.4 接收郵件功能的實現 514
20.3.5 查看郵件內容功能的實現 516
20.3.6 下載附件功能的實現 518
20.3.7 刪除郵件功能的實現 519
20.3.8 查找郵件功能的實現 520
20.4 程序調試 522
第21章 播客模塊 523
21.1 播客模塊概述 524
21.1.1 播客概述 524
21.1.2 播客起源 524
21.1.3 播客網站內容的分類 524
21.1.4 播客的發展前景 524
21.1.5 播客模塊功能結構 525
21.2 熱點關鍵技術 526
21.2.1 Smarty中的URL編碼 526
21.2.2 控制播放器窗口狀態 527
21.2.3 Ajax無刷新評論 528
21.2.4 生成RSS訂閱文件 529
21.2.5 更多相關視頻搜索 531
21.3 播客模塊 532
21.3.1 播客的數據庫 532
21.3.2 在線播放功能的實現 533
21.3.3 熱播排行功能的實現 536
21.3.4 視頻下載功能的實現 538
21.3.5 創建播客個人主頁 539
21.3.6 上傳視頻文件功能的實現 543
21.3.7 站內訂閱 545
21.3.8 訂閱管理 546
21.3.9 動態創建視頻文件類型 549
21.3.10 上傳視頻管理功能的實現 550
21.4 程序調試 552
第22章 在線音樂模塊 555
22.1 在線音樂模塊概述 556
22.2 熱點關鍵技術 557
22.2.1 embed標簽 557
22.2.2 object標簽 557
22.2.3 歌詞同步技術 558
22.2.4 創建.m3u格式的文件 560
22.2.5 Ajax無刷新刪除.m3u格式的文件 561
22.2.6 應用JavaScript實現全選、反選和不選的功能 562
22.3 實現過程 563
22.3.1 通過ADODB連接MySQL數據庫 563
22.3.2 上傳音頻文件功能的實現 565
22.3.3 在線試聽功能的實現 568
22.3.4 循環和連續播放音樂功能的實現 569
22.3.5 播放列表功能的實現 573
22.3.6 音樂下載功能的實現 574
22.3.7 收藏和播放其他網站的音樂 575
22.3.8 站內搜索功能的實現 576
22.3.9 管理員權限設置 579
22.4 程序調試 581
第23章 電子相冊模塊 583
23.1 電子相冊模塊概述 584
23.2 熱點關鍵技術 584
23.2.1 CSS濾鏡技術 584
23.2.2 獲取上傳圖片信息 587
23.2.3 縮略圖技術 588
23.2.4 使用GD庫技術向圖片中添加文字 591
23.2.5 應用Javascript中的定位技術實現層拖動 592
23.3 實現過程 594
23.3.1 數據庫設計 594
23.3.2 公***函數和文件 595
23.3.3 相冊類別管理 596
23.3.4 相冊列表的實現 600
23.3.5 圖片瀏覽功能的實現 602
23.3.6 修改圖片功能的實現 608
23.3.7 制作影集功能的實現 612
23.3.8 欣賞影集功能的實現 617
23.4 程序調試 620
第24章 RSS閱讀器模塊 621
24.1 RSS閱讀器模塊概述 622
24.1.1 RSS概述 622
24.1.2 RSS歷史 622
24.1.3 RSS 2.0的元素 622
24.1.4 RSS的發展趨勢 624
24.2 熱點關鍵技術 624
24.2.1 創建RSS文件 624
24.2.2 判斷指定的文件是否存在 626
24.2.3 自動獲取剪貼版中的內容 627
24.2.4 樹狀導航菜單輸出頻道組和頻道 628
24.2.5 Ajax無刷新讀取訂閱信息 629
24.2.6 通過html_options函數為下拉列表賦值 630
24.3 RSS閱讀器 631
24.3.1 添加頻道組功能的實現 631
24.3.2 添加頻道功能的實現 633
24.3.3 動態輸出頻道組和頻道的內容 635
24.4 創建支持RSS閱讀的站點 636
24.4.1 創建支持RSS閱讀的站點 636
24.4.2 動態創建RSS文件 637
24.5 程序調試 639
第25章 天氣預報模塊 641
25.1 天氣預報模塊概述 642
25.1.1 天氣預報概述 642
25.1.2 天氣預報時效分類 642
25.1.3 天氣預報的發展 642
25.1.4 天氣預報的常用符號 643
25.1.5 天氣預報的各項功能 644
25.2 熱點關鍵技術 644
25.2.1 XML技術 644
25.2.2 應用IFRAME浮動框架標記訪問問天網數據 646
25.2.3 應用數組遍歷全國各大城市名稱 647
25.2.4 將獲取的天氣預報信息寫入XML文件中 651
25.3 應用Iframe框架直接獲取問天網天氣預報 653
25.4 查詢各城市未來5天的天氣預報、指數預報 653
25.5 獲取中國氣象局未來72小時城市天氣預報 655
25.6 程序調試 660
第26章 網站發布 663
26.1 域名註冊 664
26.1.1 域名的命名規則 664
26.1.2 域名的分類 664
26.1.3 註冊付費域名 665
26.1.4 註冊免費域名 665
26.2 註冊虛擬主機 666
26.2.1 什麽是虛擬主機 666
26.2.2 註冊付費虛擬主機 666
26.2.3 註冊免費虛擬主機 667
26.3 發布網站到個人服務器 667
26.4 發布網站到FTP服務器 668