內容簡介
《PHP開發實例大全(提高卷)》以開發人員在項目開發中經常遇到的問題和必須掌握的技術為中心,介紹了套用PHP進行Web開發的各個方面的知識和技巧,主要包括PHP與Ming擴展庫,PHP與ImageMagick圖片處理,AJAX無刷新技術,jQuery框架技術,PHP與線上編輯工具,PHP與多媒體技術,PHP與FPDF類庫套用,報表與列印技術,網路、服務與伺服器,郵件處理技術,XML操作技術,Web伺服器與遠程過程調用,LDAP(輕量級目錄訪問協定),PHP與WAP技術,PHP與FTP,PostgreSQL資料庫,SQLite資料庫,PDO資料庫抽象層,PHPLib資料庫抽象層,網站策略與安全,PHP調試、升級與最佳化,ThinkPHP框架,Zend Framework框架,明日導航網(ThinkPHP),明日搜尋引擎(Zend Framework)等內容。
圖書目錄
第1篇 Web套用篇
第1章 PHP與Ming擴展庫 2
1.1 Ming擴展庫基本套用 3
實例001 載入Ming擴展庫 3
實例002 靜態輸出“吉林省明日科技” 3
實例003 動態輸出“明日科技歡迎您” 5
1.2 Ming擴展繪製線段 6
實例004 繪製一條直線 6
實例005 繪製一條曲線 7
實例006 繪製一條旋轉直線 8
1.3 Ming擴展繪製圖形 10
實例007 繪製一個圓 10
實例008 繪製一個正方形 11
實例009 控制圖片的漸變輸出 12
實例010 控制圖片向上移動 14
實例011 控制圖片向下移動 16
實例012 控制圖片的旋轉 17
實例013 創建一個按鈕並添加事件 19
第2章 PHP與ImageMagick圖片處理 23
2.1 ImageMagick處理圖片 24
實例014 下載、安裝ImageMagick 24
實例015 判斷指定圖片是否存在 26
實例016 獲取圖片信息 27
實例017 裁剪指定的圖片 28
實例018 將圖片由PNG格式轉換為JPG格式 30
實例019 對JPG格式的圖片進行壓縮 31
2.2 ImageMagick套用 32
實例020 控制圖片45°旋轉 32
實例021 繪製圖片的縮略圖 33
實例022 為圖片添加旋渦效果 35
實例023 按照原始比例縮放圖片 36
實例024 製作個人畫冊 37
第3章 AJAX無刷新技術 39
3.1 AJAX操作圖像 40
•實例026 AJAX無刷新輸出上傳圖像 41
•實例027 AJAX無刷新載入圖像 42
•實例028 AJAX動態生成縮略圖 43
•3.2AJAX控制表單 45
•實例029 AJAX檢測用戶名是否被占用 45
•實例030 AJAX無刷新下拉列表 48
•實例031 AJAX無刷新級聯下拉列表 50
•實例032 AJAX驗證用戶註冊信息 53
•實例033 AJAX無刷新添加數據信息 55
•3.3AJAX操作XML 57
•實例034 AJAX無刷新讀取XML檔案 57
•實例035 AJAX讀取XML節點屬性 58
•3.4AJAX實戰套用 60
•實例036 AJAX讀取HTML檔案 60
•實例037 AJAX添加圖書信息 61
•實例038 AJAX查詢圖書信息 63
•實例039 AJAX修改圖書信息 65
•實例040 AJAX刪除圖書信息 67
•實例041 AJAX無刷新分頁 69
•實例042 AJAX實現部落格文章類別添加 72
•實例043 AJAX實現用戶登錄 74
•實例044 AJAX無刷新查詢數據 76
•實例045 AJAX無刷新倒計時 78
•實例046 AJAX無刷新顯示聊天信息 79
•實例047 AJAX無刷新顯示公告信息 81
•實例048 AJAX無刷新獲取用戶的個人信息 82
•實例049 AJAX無刷新獲取新聞內容 85
•實例050 AJAX獲取指定圖書信息 87
•第4章jQuery框架技術 89
•4.1網頁特效 90
•實例051 jQuery實現查找節點 90
•實例052 圖片幻燈片 91
•實例053 顏色拾取器 92
•實例054 廣告輪顯 94
•實例055 圖片放大鏡 95
•實例056 jQuery幕簾效果 96
•實例057 jQuery動態變化的數字 98
•實例058 jQuery淡入淡出動畫效果 99
•實例059 jQuery上下捲簾動畫效果 100
•實例060 自動隱藏式選單 101
•實例061 圖片傳送帶 102
•實例062 打造自己的開心農場 104
•4.2jQuery操作表單 106
•實例063 檢測用戶名是否被占用 106
•實例064 jQuery驗證表單元素 107
•實例065 密碼強度檢測 109
•實例066 文本框提示標籤 110
•實例067 文本編輯器 111
•實例068 右鍵選單 112
•實例069 jQuery二級聯動下拉列表框 114
•實例070 jQuery三級聯動下拉列表框 116
•實例071 複選框的全選、反選和全不選 118
•實例072 表單動態變色 119
•實例073 上傳圖片預覽 121
•實例074 通過下拉列表選擇頭像 122
•4.3jQuery操作表格 124
•實例075 jQuery橫嚮導航 124
•實例076 jQuery豎嚮導航 125
•實例077 jQuery彈出層 127
•實例078 jQuery滑動門 129
•實例079 jQuery可編輯表格 130
•實例080 jQuery實現表格隔行變色 132
•實例081 jQuery拖曳 133
•實例082 jQuery翻滾的訊息動態 135
•實例083 jQuery動態換膚 136
•實例084 可展開和關閉的表格 137
•實例085 單行左右移動的訊息提示 138
•實例086 顯示全部資源與精簡資源 140
•4.4jQuery與Jpgraph結合 142
•實例087 jQuery與Jpgraph動態製作折線圖
•分析網站訪問量 142
•實例088 jQuery與GD2函式製作驗證碼 146
•4.5jQuery操作XML 147
•實例089 通過jQuery讀取XML檔案 147
•第5章PHP與線上編輯工具 150
•5.1常用線上編輯器 151
•實例090 自定義線上編輯器 151
•實例091 在部落格中套用自定義線上編輯器 153
•5.2FCKeditor線上編輯器 154
•實例092 CKEditor網頁編輯器 154
•實例093 將CKEditor網頁編輯器嵌入到後台
•管理系統中 156
•實例094 FCKeditor文本編輯器 159
•實例095 在論壇的帖子回覆中套用FCKeditor 162
•第6章PHP與多媒體技術 165
•6.1操控音頻檔案 166
•實例096 線上音樂上傳 166
•實例097 線上音樂下載 169
•實例098 MP3線上點播 171
•實例099 MP3下載 172
•實例100 創建.m3u格式的檔案 174
•實例101 無刷新刪除.m3u格式的檔案 175
•實例102 通過object標籤向HTML頁中載入
•多媒體 176
•實例103 通過embed標籤向HTML頁中載入
•多媒體 177
•實例104 歌詞的同步輸出 178
•實例105 線上播放列表 180
•實例106 線上音樂的循環播放 183
•實例107 線上音樂的連續播放 186
•實例108 收藏其他網站的音樂 187
•6.2操控影音檔案 189
•實例109 通過RealPlayer播放器播放視頻檔案 189
•實例110 通過MediaPlayer播放器播放視頻檔案 191
•實例111 控制播放器視窗的狀態 192
•實例112 播放FLV視頻檔案 193
•實例113 在網頁中加入可控的背景音樂 194
•實例114 在部落格中加入可控的背景音樂 196
•6.3操控Flash動畫檔案 197
•實例115 在網頁中嵌入Flash 197
•實例116 在網頁中嵌入背景透明的Flash 198
•實例117 向Flash中傳遞參數 199
•實例118 嵌入Flash播放器 201
•實例119 用JavaScript控制Flash 202
•第7章PHP與FPDF類庫套用 204
•7.1 編輯、設計PDF文檔 205
•實例120配置FPDF 205
•實例121 創建FPDF文檔 205
•實例122 下載PDF文檔 207
•實例123 向PDF中插入圖片 208
•實例124 為FPDF增加中文支持 209
•實例125 設定FPDF的頁眉和頁腳 210
•實例126 通過FPDF繪製表格 212
•7.2 PDF文檔的實戰套用 213
•實例127 設計編程詞典說明書的PDF文檔 213
•實例128 設計編程詞典產品介紹的PDF文檔 215
•實例129 設計編程詞典安裝說明的PDF文檔 216
•實例130 動態生成編程詞典註冊用戶的PDF
•文檔 218
•實例131 設計畢業論文的PDF文檔 220
•第8章報表與列印技術 225
•8.1操作Word 226
•實例132 將資料庫數據保存到Word 226
•實例133 將查詢結果保存到Word 228
•實例134 將Web頁中的表格導出到Word並
•列印 230
•實例135 打開指定的Word文檔並列印 232
•實例136 調用Word自動列印指定格式的
•會議記錄 233
•8.2操作Excel 235
•實例137 將MySQL數據表中的數據導出到Excel 235
•實例138 將查詢結果導出到Excel 237
•實例139 將Web頁面中的數據導出到Excel 239
•實例140 將Web頁面中的數據導出到Excel並
•自動列印 241
•實例141 將Excel中的數據導出到MySQL
•資料庫 243
•實例142 將Excel中的工資數據導入到SQLServer
•資料庫 245
•實例143 將SQLServer數據導出到Excel 247
•8.3報表列印 249
•實例144 調用IE自身的列印功能實現列印 249
•實例145 列印指定框架中的內容 251
•實例146 使用WebBrowser列印報表 252
•實例147 設定頁眉頁腳 254
•實例148 利用CSS樣式列印頁面中的指定內容 257
•實例149 利用CSS樣式實現分頁列印 259
•8.4報表列印實戰套用 261
•實例150 列印匯款單 261
•實例151 列印快遞單 263
•實例152 列印信封 264
•實例153 GD2函式動態生成圖表並列印 265
•實例154 列印用戶的通訊記錄 267
•實例155 JavaScript腳本列印賬單 268
•實例156 列印工資條 270
•第2篇網路套用篇
•第9章網路、服務與伺服器 274
•9.1 獲取伺服器信息 275
•實例157 根據IP位址獲取主機名稱 275
•實例158 根據主機名稱獲取IP位址 276
•實例159 獲取主機的所有IP位址 277
•實例160 將IP位址轉換為整數 277
•實例161 將整數型IP位址還原為4個圓點分隔
•形式 278
•
•9.2 Socket實現“C/S”通信 280
•實例162 創建Socket伺服器 280
•實例163 創建Socket客戶端 284
•實例164 通過Socket傳送簡訊 286
•實例165 簡訊群發 288
•9.3 常見網路任務 289
•實例166 驗證伺服器是否連線 289
•實例167 開發連線埠掃描器 291
•實例168 利用curl獲取HTML內容 294
•實例169 利用curl模擬POST方式傳送數據 295
•實例170 curl批處理 297
•第10章郵件處理技術 299
•10.1配置伺服器 300
•實例171 SMTP和POP3伺服器的安裝與配置 300
•實例172 Winmail伺服器的安裝與配置 303
•實例173 通過mail()函式傳送郵件 305
•10.2通過imap電子郵件系統函式操作
•郵件 307
•實例174 登錄郵件伺服器 307
•實例175 接收郵件 309
•實例176 瀏覽郵件 311
•實例177 下載附屬檔案 314
•實例178 查找郵件 315
•實例179 傳送郵件 317
•實例180 傳送帶附屬檔案的郵件 319
•實例181 郵件群發 322
•實例182 刪除郵件 324
•10.3使用Zend_Mail組件傳送郵件 325
•實例183 Zend_Mail組件傳送普通文本郵件 325
•實例184 Zend_Mail組件傳送HTML格式
•文本郵件 327
•實例185 Zend_Mail組件傳送附屬檔案 329
•實例186 Zend_Mail組件傳送群郵件 331
•實例187 Zend_Mail組件接收郵件 333
•實例188 Zend_Mail組件獲取郵件內容 335
•第11章XML操作技術 337
•11.1創建XML檔案 338
•實例189 手動創建XML檔案 338
•實例190 在PHP中創建XML檔案 339
•實例191 通過檔案系統函式創建XML檔案 340
•實例192 通過DOM創建XML檔案 342
•實例193 讀取XML檔案 343
•11.2XML檔案節點操作 345
•實例194 插入XML節點 345
•實例195 修改XML節點 346
•實例196 刪除XML節點 347
•11.3XML檔案轉換 347
•實例197 在HTML頁面中使用XML檔案 348
•實例198 在XML檔案中套用CSS樣式 349
•實例199 XSL轉換XML檔案 350
•11.4SimpleXML函式操作XML 351
•實例200 遍歷所有子節點 351
•實例201 遍歷所有屬性 352
•實例202 訪問特定節點元素和屬性 353
•實例203 修改並保存XML文檔 354
•11.5動態操作XML 355
•實例204 PHP動態創建XML文檔 356
•實例205 PHP動態添加XML數據 358
•實例206 PHP動態查詢XML數據 360
•實例207 PHP動態修改XML數據 362
•實例208 PHP動態刪除XML數據 364
•11.6XML實戰套用—留言板 366
•實例209 用戶註冊 366
•實例210 用戶登錄 368
•實例211 發布留言 370
•實例212 瀏覽留言 371
•實例213 編輯留言 373
•實例214 刪除留言 374
•11.7XML實戰套用—RSS閱讀器 376
•實例215 創建支持RSS閱讀的站點 376
•實例216 動態創建RSS檔案 378
•實例217 創建RSS閱讀器的框架 379
•實例218 添加頻道組 381
•實例219 刪除頻道組 382
•實例220 添加頻道 384
•實例221 刪除頻道 386
•實例222 樹狀導航選單輸出頻道組和頻道 388
•實例223 AJAX無刷新讀取訂閱信息 389
•第12章Web伺服器與遠程過程調用 392
•12.1SOAP擴展 393
•實例224 Windows下安裝、配置SOAP 393
•實例225 建立SOAP伺服器端 393
•實例226 建立SOAP客戶端 395
•12.2PHP與WebService的互動操作 396
•實例227 NuSOAP類庫的安裝、配置 396
•實例228 PHP創建WebService 397
•實例229 PHP訪問WebService 399
•實例230 PHP通過WebService傳送簡訊 400
•12.3XML-RPC(遠程過程調用) 402
•實例231 客戶端請求的XML格式 402
•實例232 伺服器回響的XML格式 404
•實例233 錯誤信息的XML格式 405
•實例234 XML-RPC的綜合套用—數學運算 405
•第13章LDAP(輕量級目錄訪問協定) 408
•13.1LDAP伺服器的安裝與配置 409
•實例235 安裝LDAP伺服器 409
•實例236 配置LDAP伺服器 410
•實例237 OpenLDAP的啟動和關閉 411
•13.2通過命令操作LDAP伺服器 412
•實例238 通過命令向OpenLDAP伺服器中
•添加數據 412
•實例239 通過命令查詢OpenLDAP伺服器中的
•數據 413
•13.3phpLDAPadmin圖形工具簡介 414
•實例240 下載安裝phpLDAPadmin工具 414
•13.4PHP操作LDAP伺服器 415
•實例241 在PHP中載入LDAP 415
•實例242 連線、綁定和斷開LDAP伺服器 416
•實例243 查詢LDAP目錄的內容 417
•實例244 獲取查詢結果中的值 418
•實例245 統計查詢結果的記錄數 419
•實例246 向LDAP中添加記錄 420
•實例247 更新LDAP中的記錄 421
•實例248 刪除LDAP中的記錄 422
•實例249 獲取錯誤處理信息 423
•實例250 LDAP伺服器實戰套用—驗證
•用戶身份 424
•第14章PHP與WAP技術 425
•14.1配置WAP 426
•實例251 Apache中配置WAP 426
•實例252 製作第一個WAP頁面 427
•實例253 WAP頁面跳轉 427
•14.2WAP的套用 428
•實例254 動態生成圖像 428
•實例255 使用WAP獲取下拉列表框
•選項內容 429
•實例256 使用WAP製作用戶註冊頁面 431
•實例257 站內查詢功能 432
•實例258 使用WAP製作用戶登錄頁面 434
•14.3Smarty與WAP 436
•實例259 通過if語句判斷當前用戶的許可權 436
•實例260 通過foreach語句讀取數組中的數據 438
•實例261 Smarty模板中生成數字驗證碼 439
•實例262 通過html_options()函式向下拉列表框中
•添加列表項 441
•實例263 在模板檔案中定義CSS樣式 443
•實例264 通過section循環輸出數據 444
•實例265 Smarty實現資料庫信息分頁顯示 446
•實例266 Smarty模板中時間的格式化輸出 448
•實例267 Smarty模板中的編碼 450
•實例268 Smarty模板中套用正則表達式 451
•實例269 Smarty模板中的關鍵字描紅技術 453
•實例270 Smarty模板中控制輸出字元串的行寬 454
•實例271 Smarty模板中自定義創建form表單 456
•實例272 register_function()方法註冊模板函式 459
•實例273 register_object()方法註冊模板對象 461
•實例274 在Smarty中通過truncate方法
•截取字元串 465
•實例275 Smarty模板製作用戶註冊頁面 466
•實例276 Smarty模板製作後台管理系統主頁 468
•實例277 Smarty模板頁嵌入PHP腳本 470
•實例278 在模板中包含子模板 471
•實例279 為網站的首頁開啟快取 472
•實例280 開啟網站註冊頁面的快取 474
•實例281 通過配置檔案定義變數 475
•第15章PHP與FTP 478
•15.1 安裝、配置伺服器端軟體 479
•實例282安裝、配置Serv-U 479
•實例283 連線、關閉FTP伺服器 482
•15.2 操作FTP伺服器 483
•實例284 上傳檔案到FTP伺服器 483
•實例285 從FTP伺服器中下載檔案 485
•實例286 更改FTP伺服器中的檔案名稱稱 486
•實例287 刪除FTP伺服器中的指定檔案 487
•實例288 在FTP伺服器中創建目錄 488
•實例289 遍歷FTP伺服器指定目錄下的檔案 490
•實例290 檔案批量上傳到FTP伺服器 491
•實例291 將指定類型的檔案上傳到FTP
•伺服器 493
•實例292 將FTP伺服器中的檔案批量下載到
•本地 494
•實例293 將指定類型的檔案下載到本地計算機 495
•實例294 查看FTP伺服器指定子目錄下的
•詳細信息 496
•第3篇資料庫與抽象層篇
•第16章PostgreSQL資料庫 500
•16.1 PostgreSQL資料庫的安裝與操作 501
•實例295PostgreSQL資料庫安裝 501
•實例296PostgreSQL服務的啟動與停止 503
•實例297啟動pgAdminIII工具 504
•實例298連線PostgreSQL伺服器 505
•16.2 通過pgAdminIII操作PostgreSQL
•資料庫 506
•實例299創建database16資料庫 506
•實例300創建tb_book資料庫表 507
•實例301向tb_book表中添加數據 509
•實例302 在pgAdminIII中通過SQL語句查詢
•tb_book表中數據 510
•16.3 PHP操作PostgreSQL資料庫 511
•實例303在PHP中載入PostgreSQL函式館 511
•實例304 連線、關閉PostgreSQL資料庫 512
•實例305 pg_query()函式執行SQL語句 513
•實例306 pg_num_rows()函式獲取查詢結果集的
•記錄數 514
•實例307 pg_fetch_array()函式將結果集返回到
•數組 515
•實例308 pg_fetch_row()函式從結果集中
•獲取一行作為枚舉數組 516
•實例309 pg_fetch_assoc()函式返回關聯數組 517
•實例310 pg_insert()函式添加圖書信息 518
•實例311 select語句查詢圖書信息 519
•實例312 分頁顯示圖書信息 521
•實例313 pg_update()函式更新圖書信息 524
•實例314 圖書名稱的批量更新 526
實例315 pg_delete()函式刪除圖書信息 530
實例316 圖書信息的批量刪除
(刪除前給出提示信息) 531
第17章SQLite資料庫 536
17.1 SQLite資料庫的安裝與配置 537
實例317下載安裝SQLite資料庫 537
實例318配置SQLite資料庫 538
17.2 SQLite資料庫的操作 538
實例319創建database17資料庫 538
實例320查看database17資料庫 539
實例321創建tb_user數據表 541
實例322查看tb_user數據表 542
實例323向tb_user資料庫表中添加數據 542
實例324查看tb_user數據表中的數據 543
17.3 PHP操作SQLite資料庫 545
實例325連線、關閉資料庫 545
實例326query()方法執行SQL語句 546
實例327fetchArray()方法返回數組結果行 547
實例328獲取查詢結果集的記錄數 549
實例329獲取結果集列數 550
實例330reset()方法返回第一行數據 550
實例331獲取最近插入數據的ID值 552
實例332返回資料庫受影響行數 552
實例333prepare預查詢語句 553
實例334添加用戶註冊信息 555
實例335用戶登錄 556
實例336查詢註冊用戶 557
實例337分頁顯示註冊用戶信息 559
實例338顯示用戶信息按照ID排序 561
實例339修改用戶註冊信息 564
實例340刪除註冊用戶 566
第18章PDO資料庫抽象層 568
18.1 PDO安裝、配置 569
實例341Windows下安裝PDO 569
實例342Linux下安裝PDO 570
18.2PDO連線資料庫 571
實例343PDO連線MySQL資料庫 571
實例344PDO連線SQLServer2000資料庫 572
實例345PDO連線Access資料庫 573
實例346PDO連線Oracle資料庫 575
實例347PDO連線PostgreSQL資料庫 576
實例348PDO連線SQLite資料庫 577
18.3 PDO查詢 578
實例349向圖書信息表中添加數據 578
實例350修改圖書表中的數據 580
實例351刪除圖書信息表中的指定數據 584
實例352刪除圖書信息表中的所有數據 585
實例353查詢字元串 587
實例354查詢日期型數據 589
實例355查詢邏輯型數據 591
實例356查詢非空數據 594
實例357利用變數查詢字元串數據 597
實例358利用變數查詢數值型數據 600
實例359查詢指定的N條記錄 602
實例360查詢前N條記錄 604
實例361查詢後N條記錄 606
實例362查詢從指定位置開始的N條記錄 608
實例363查詢統計結果中的前N條記錄 610
實例364查詢指定時間段的數據 612
實例365按月查詢統計數據 614
實例366查詢大於指定條件的記錄 616
實例367查詢結果不顯示重複記錄 618
實例368NOT與謂詞進行組合條件的查詢 620
實例369顯示數據表中的重複記錄和記錄條數 622
實例370對數據進行降序查詢 624
實例371對數據進行多條件排序 626
實例372對統計結果進行排序 629
實例373單列數據分組統計 631
實例374多列數據分組統計 633
實例375多表分組統計 635
實例376使用聚集函式sum()對學生成績
進行匯總 637
實例377使用聚集函式avg()求平均每月的
圖書銷量 639
實例378使用聚集函式min()求銷售額、
利潤最少的商品 642
實例379使用聚集函式max()求月銷售額完成
最多的銷售記錄 644
實例380使用聚集函式count()求日銷售額
大於某值的記錄數 646
實例381使用聚集函式first(或last)求數據表中
第一條或最後一條記錄 648
實例382使用from子句進行多表查詢 650
實例383使用表的別名 652
實例384合併多個結果集 654
實例385簡單的嵌套查詢 656
實例386複雜的嵌套查詢 658
實例387複雜嵌套查詢在查詢統計中的套用 661
實例388使用子查詢作派生的表 663
實例389使用子查詢作表達式 665
實例390使用子查詢關聯數據 667
實例391多表聯合查詢 670
實例392對聯合查詢後的結果進行排序 672
實例393條件聯合語句 674
實例394簡單內連線查詢 676
實例395複雜內連線查詢 678
實例396兩表的內連線關聯 680
實例397使用外連線進行多表聯合查詢 682
實例398leftouterjoin查詢 684
實例399rightouterjoin查詢 687
實例400利用in或notin語句限定範圍 689
實例401用in查詢表中的記錄信息 691
實例402由in引入的關聯子查詢 693
實例403利用transform分析數據 695
實例404利用transform統計數據 698
實例405使用格式化函式轉換查詢條件的
數據類型 700
實例406在查詢中使用字元串函式 702
實例407在查詢中使用日期函式 704
實例408利用having語句過濾分組數據 707
18.4 PDO錯誤處理 709
實例409獲得查詢錯誤號 709
實例410獲得查詢錯誤信息 710
實例411在PDO中設定錯誤模式 711
實例412通過異常處理捕獲PDO異常信息 712
實例413使用函式die()列印錯誤信息 713
18.5 PDO事務 714
實例414執行一個批處理事務 714
實例415實現銀行安全轉賬 716
實例416多表數據同時安全刪除 719
實例417通過事務處理方式保存數據 720
實例418通過事務處理方式更新數據 722
18.6 PDO存儲過程 725
實例419通過存儲過程實現用戶註冊 725
實例420通過存儲過程實現用戶登錄 727
實例421通過存儲過程刪除註冊用戶 729
實例422通過存儲過程修改學生信息 731
第19章PHPLib資料庫抽象層 734
19.1 PHPLib下載、安裝 735
實例423下載PHPLib 735
實例424使用require語句導入PHPLib類庫 735
實例425自動載入PHPLib類庫檔案 737
19.2 PHPLib操作MySQL資料庫 737
實例426向產品信息表中添加數據 737
實例427修改產品信息表中的數據 739
實例428刪除產品信息表中的指定數據 742
實例429刪除商品信息表中的所有數據 744
實例430查詢字元串 745
實例431查詢日期型數據 747
實例432查詢邏輯型數據 750
實例433查詢非空數據 753
實例434利用變數查詢字元串數據 755
實例435利用變數查詢數值型數據 757
實例436查詢指定的N條記錄 759
實例437查詢前N條記錄 760
實例438查詢後N條記錄 762
實例439查詢從指定位置開始的N條記錄 763
實例440查詢統計結果中的前N條記錄 765
實例441查詢指定時間段的數據 766
實例442分頁查詢 768
19.3 PHPLib操作Oracle資料庫 770
實例443添加留言信息 770
實例444修改留言信息 773
實例445刪除留言信息 776
實例446留言信息分頁輸出 778
實例447查詢留言信息 781
第4篇網站安全與最佳化篇
第20章網站策略與安全 784
20.1 檔案保護 785
實例448防止用戶直接輸入地址訪問
PHP檔案 785
實例449防止頁面重複提交 786
實例450對查詢字元串進行URL編碼 789
實例451過濾HTML非法字元 791
實例452禁止用戶輸入敏感字元 794
20.2 漏洞防護 795
實例453防止Access資料庫被下載 795
實例454操作帶密碼的Access資料庫 796
實例455越過表單限制漏洞 799
實例456檔案上傳漏洞 802
實例457隱藏PHP檔案擴展名 804
實例458通過信箱激活註冊用戶 805
實例459本地檔案包含漏洞 812
實例460遠程檔案包含漏洞 813
實例461檢測檔案上傳類型 814
實例462SQL注入漏洞 816
20.3 數據加密 818
實例463通過base64對資料庫進行編碼 818
實例464以RFC1738規則對URL進行編碼 819
實例465禁止複製和另外儲存為網頁內容 821
實例466通過MD5對用戶密碼進行加密 822
實例467使用crypt()函式對用戶註冊密碼
進行加密 824
實例468使用sha1()函式對用戶註冊密碼
進行加密 825
實例469使用Mcrypt擴展庫對用戶註冊密碼
進行加密 826
實例470通過Mhash擴展庫對用戶註冊密碼
進行加密 828
20.4 身份驗證 829
實例471直接對用戶的身份進行驗證 829
實例472通過文本檔案對用戶身份進行驗證 830
實例473驗證碼登錄技術 832
實例474通過資料庫完成身份的驗證 834
實例475通過IP驗證用戶身份 835
實例476為註冊用戶生成隨機密碼 837
第21章PHP調試、升級與最佳化 839
21.1錯誤類型舉例 840
實例477語法錯誤 840
實例478定義錯誤 841
實例479邏輯錯誤 842
實例480運行錯誤 843
實例481環境錯誤 844
21.2程式調試方法 845
實例482套用die()語句調試 845
實例483套用mysql_error()語句輸出
錯誤信息 846
實例484套用try{}catch{}語句拋出並
捕獲異常 847
21.3錯誤處理技巧 848
實例485隱藏錯誤 848
實例486自定義錯誤頁面 849
實例487延長伺服器執行時間—處理逾時
錯誤 850
實例488如何分析、解決PHP與MySQL
連線錯誤 852
實例489解決資料庫亂碼問題 853
實例490封裝屬於自己的異常處理類 855
實例491使用錯誤處理器記錄日誌 856
實例492通過mysql_error()函式調試SQL
語句中的錯誤 857
實例493通過phpMyAdmin調試SQL
語句中的錯誤 858
21.4PHP最佳化技巧 859
實例494PHP腳本級最佳化 859
實例495使用代碼最佳化工具 860
實例496使用代碼最佳化工具 862
實例497MySQL日誌維護 864
實例498Apache伺服器最佳化 865
實例499內容壓縮與最佳化 866
第5篇框架與項目整合篇
第22章ThinkPHP框架 874
22.1ThinkPHP的MVC環境搭建 875
實例505環境配置 875
實例506框架結構 876
實例507創建流程 878
22.2ThinkPHP的MVC操作 880
實例508URL訪問 880
實例509ThinkPHP控制器 881
實例510ThinkPHP視圖 883
實例511ThinkPHP模型 885
22.3ThinkPHP的訪問資料庫操作 886
實例512連線MySQL資料庫 886
實例513用戶註冊 888
實例514用戶登錄 892
實例515發布信息 895
實例516查詢信息 897
實例517修改信息 898
實例518刪除信息 901
實例519信息分頁顯示 903
第23章ZendFramework框架 906
23.1 ZendFramework的MVC環境搭建 907
實例520環境配置 907
實例521框架結構 908
實例522創建流程 909
實例523ZendFramework的編碼標準 912
23.2 Zend_Layout網站布局 913
實例524Zend_Layout對站點進行布局 913
實例525通過Zend_Layout對新聞頁面
進行布局 914
23.3 Zend_Config配置檔案 916
實例526Zend_Config配置站點初始參數 916
23.4 Zend_Cache快取服務 919
實例527Zend_Cache對資料庫中的信息
快取輸出 919
實例528通過Zend_Cache刪除快取 921
23.5 Zend_Paginator分頁 923
實例529Zend_Paginator實現數據分頁顯示 923
實例530通過修改樣式做成下拉列表分頁 925
23.6 Zend_Form表單 927
實例531使用Zend_Form製作用戶註冊表單 927
實例532使用Zend_Form製作用戶登錄頁面 929
23.7 Zend_Auth身份認證 931
實例533使用Zend_Auth對用戶身份進行驗證 931
實例534身份持久認證 935
23.8Zend_Acl許可權管理 938
實例535通過Zend_Acl控制角色和
資源的許可權 938
實例536通過Zend_Acl完成精細的訪問
許可權控制 939
23.9Zend_Db資料庫操作 940
實例537Zend_Db_Adapter資料庫操作 940
實例538Zend_Db_Table資料庫操作 940
實例539數據表類 942
23.10 Zend_File檔案控制 945
實例540使用Zend_File_Transfer_Adapter_Http
實現POST方式檔案上傳 945
實例541對上傳檔案的合理性驗證 947
實例542為上傳增加過濾規則 948
實例543使用ZendFramework實現查詢結果的
關鍵字描紅 948
第24章明日導航網(ThinkPHP) 952
24.1資料庫設計 953
實例544創建資料庫 953
實例545創建數據表 953
24.2MVC框架結構搭建 956
實例546ThinkPHP框架的MVC目錄結構 956
實例547ThinkPHP框架的MVC結構創建過程 957
24.3前台設計 958
實例548連線資料庫 958
實例549前台首頁設計 959
實例550前台首頁子頁面設計 961
24.4後台管理設計 962
實例551創建後台管理架構 963
實例552後台登錄 964
實例553後台管理主頁設計 965
實例554高級類別管理 967
實例555判斷訪問用戶的許可權 970
實例556操作提示頁面 971
實例557ThinkPHP框架中的分頁技術 972
第25章明日搜尋引擎(Zend
Framework) 973
25.1資料庫設計 974
實例558創建資料庫 974
實例559創建數據表 975
25.2MVC框架結構搭建 977
實例560ZendFramework框架的MVC
目錄結構 977
實例561ZendFramework框架的MVC結構
創建過程 978
25.3前台設計 980
實例562首頁設計 980
實例563用戶註冊 983
實例564用戶登錄 985
實例565發表問題 987
實例566回復問題 989
實例567驗證碼生成 992
實例568類似Google搜尋引擎的搜尋條 994
實例569使用空格分隔多關鍵字 997
實例570查詢結果的分頁輸出 998
實例571關鍵字描紅 1000
實例572製作線上編輯器 1001
實例573自定義錯誤頁面 1004
25.4後台設計 1005
實例574後台管理員登錄 1005
實例575用戶管理 1007
實例576退出登錄 1010