PHP開發手冊(典藏版)

PHP開發手冊(典藏版)

《PHP開發手冊(典藏版)》是2011年出版的圖書,作者是孫鵬程等。

基本介紹

  • 書名:PHP開發手冊(典藏版)
  • 作者:孫鵬程 等編著
  • ISBN:978-7-121-12293-4 
  • 頁數:740頁
  • 定價:99.00元(含光碟1張)
  • 出版時間:2011年3月
  • 開本:16開
宣傳語,內 容 提 要,前 言,本書特色,目 錄,

宣傳語

百科全書式的PHP編程寶典,值得每個程式設計師珍藏
囊括PHP從基礎知識到高級開發技術的全景式解讀
封面封面

內 容 提 要

本書全面、系統地介紹了PHP實戰開發方方面面的技術。內容由淺入深,從易到難,實例豐富,從PHP的基本知識到高級技術與框架操作,再到項目開發與擴展套用,幾乎涉及PHP開發與套用的所有重要知識。書中的全部實例原始碼都收錄在本書的配書光碟中,供讀者實戰演練。
本書共分5篇。第1篇介紹PHP的檔案系統、程式調試、異常處理、表單與JavaScript等基礎套用;第2篇介紹PHP與MySQL、PostgreSQL、SQL Server以及Oracle等多種不同資料庫的互動操作方法;第3篇介紹PHP的擴展庫PEAR、ADOdb、FPDF、GD庫的操作方法,以及目前流行的ThinkPHP、Zend Framework、CakePHP、Symfony等PHP開發框架;第4篇通過對CMS系統、OA系統、流程管理系統、資源管理系統等系統的介紹,詳細講解PHP在實際開發中的套用;第5篇介紹PHP的網路客戶端、Web Service擴展套用,以及Ajax的基礎知識。
本書光碟中的電子書分三篇:第1篇介紹PHP開發環境的搭建、PHP的基本語法與操作;第2篇介紹PHP的面向對象操作及類的開發實例;第3篇介紹PHP伺服器環境的硬體知識與伺服器維護策略。
本書無論是對初學PHP應用程式的開發人員,還是對PHP應用程式開發有一定經驗的開發人員,都會有很大的幫助。對於經常使用PHP的程式設計師,本書也是一本不可多得的案頭必備參考書。

前 言

從1995年Rasmus Lerdorf發明PHP程式語言1.0版本以來,已經有15年了。在這期間,PHP以其高效、開源以及易學易懂的特點,在動態網頁開發領域經久不衰。特別是在2004年PHP 5發布以後,PHP受到了更多網站系統開發人員與編程愛好者的青睞,成為目前流行的Web應用程式開發平台之一。PHP 5的發布使PHP不再局限於個人小型網站的使用。PHP 5增強的企業特性使PHP更廣泛地套用於大型網站與系統的建設。PHP 5在開發效率、靈活性、安全性、性能方面比PHP 4又有進一步加強。除此之外,PHP 5面向對象的特點使PHP的功能有了更遠的發展。
筆者結合自己多年的PHP開發經驗和心得體會,並結合最新的技術發展寫作了本書。希望各位讀者能在本書的引領下跨入PHP開發大門,並進而成為一名開發高手。本書有“全”和“新”兩個優勢;全面地講解了PHP中的各種特性以及操作,內容幾乎涉及使用PHP開發網站的所有方面;並且對於新興的PHP框架、Web 2.0技術、Ajax技術等都進行了系統翔實的介紹。

本書特色

1.實例豐富,貫穿有大量的開發實例和技巧,學習效果好。
本書的所有知識點都附帶了可以運行的PHP代碼,而且包含了詳細的注釋。在代碼的基礎上學習,可以為今後的套用打下堅實的基礎。
2.內容全面系統。
本書對PHP的各方面知識作了一個全面的介紹,包括如何配置安裝環境、基本語法以及與資料庫的連線操作等。
3.講解循序漸進,適合各個層次的讀者閱讀。
本書對PHP與其他網頁元素諸如表單、檔案、圖像作了一個很詳細的介紹。同時,對PHP與LDAP的操作、PEAR、Web 2.0以及一些處於發展中或剛剛出現的PHP Framework作了一個簡要介紹。
4.詳解典型項目案例開發,迅速提升開發水平。
本書使用了幾個完整的實例,綜合介紹了PHP在實際套用中的使用方法。這些極具代表性的實例對讀者的實際套用、畢業設計等都具有指導作用。
5.配有代碼光碟,節省代碼輸入時間。
配書光碟提供了書中的所有代碼。讀者可以在學習中直接對書中的例子進行運行,有效地節省代碼輸入的時間。
本書內容及體系結構
第1篇 PHP基礎套用(第1~7章)
本篇主要內容包括:檔案系統與文本操作、字元與數組的處理、PHP的調試與異常處理、PHP表單以及JavaScript等。通過本篇的學習,讀者可以掌握PHP的常用技巧、PHP程式的調試方法,以及與表單等基本Web元素的套用方法。
第2篇 PHP與資料庫(第8~17章)
本篇主要內容包括:關係型資料庫的基礎知識,MySQL、PostgreSQL、SQL Server與Oracle資料庫與PHP的互動操作方法。通過本篇的學習,讀者可以掌握PHP與不同資料庫的基本操作方法,並對觸發器和存儲過程的編寫方法有一定了解。
第3篇 PHP的高級套用(第18~32章)
本篇主要內容包括:PEAR、ADOdb、FPDF、Smarty等多種常見類庫的套用,PHP與圖像、郵件系統、LDAP系統等常見對象的操作,以及目前流行的ThinkPHP、Zend Framework、CakePHP、Symfony等框架的實施方法。通過本篇的學習,讀者可以掌握PHP中的常用類庫與對象的操作,並對目前流行的各種PHP編程框架有一定了解。
第4篇 PHP與實際項目(第33~39章)
本篇主要內容包括:CMS系統、OA系統、流程管理系統、資源管理系統等項目案例開發實例,並對搜尋引擎技術、入口網站的套用技巧、多國語言處理策略方面進行了重點介紹。通過本篇的學習,讀者可以全面套用前面章節所學的開發技術進行軟體項目開發,達到可以獨立開發項目的水平。
第5篇 PHP的擴展套用(第40~44章)
本篇主要內容包括:PHP的網路客戶端、Web Service、Ajax以及使用Visual C++進行PHP擴展的開發等。通過本篇的學習,讀者可以看到PHP不僅可以實現普通的Web套用系統開發,還可以實現包括命令行程式、網路服務程式等其他套用的開發。
光碟電子書內容體系結構
第1篇 PHP的基礎知識(第1~4章)
本篇主要內容包括:PHP開發環境搭建、PHP的基礎語法、數據類型以及函式處理與數據引用等。通過本篇的學習,讀者可以掌握PHP開發環境的搭建方法以及PHP的編程基礎知識,為後續的應用程式開發奠定堅實的基礎。
第2篇 PHP面向對象(第5~8章)
本篇主要內容包括:PHP面向對象套用的基礎知識、類的基本操作、高級操作以及考試評分模組的案例開發。通過本篇的學習,讀者可以掌握PHP中有關面向對象的核心技術和編程思想。
第3篇 支持Web的系統和網路維護(第9~13章)
本篇主要內容包括:硬體故障的解決、防火牆套用、數據的安全性、日誌分析方法等。通過本篇的學習,讀者可以掌握一些有關伺服器的基礎知識。這些知識對於項目的實際部署非常有用,可以指導讀者在系統運營期間需要注意的問題。
本書讀者對象
PHP初學者。
PHP網頁專業設計製作人員。
PHP網站維護人員。
PHP網頁製作愛好者。
大學/大專/中專在校學生。
社會培訓班學員。
需要一本案頭必備手冊的程式設計師。
本書作者
本書主要由孫鵬程編著,其他參與編寫的人有昊燃、黃葉新、李增輝、劉聰、龍志標、孟劼、米愛中、秦俠、冉劍、任瀟、譚勵、王大亮、伍雲輝、於重重。在此表示感謝!
編者

目 錄

第1篇 PHP基礎套用
第1章 檔案系統與文本數據操作 2
在程式設計中,檔案是一個很重要的對象,Web編程也不例外。檔案的操作在很多Web系統中一直都是被反覆用到的。在實際套用中經常會遇到對檔案和目錄的創建、修改、刪除等操作。本章將主要介紹如何使用PHP對檔案系統以及文本數據進行操作。
1.1 PHP中目錄操作詳解 2
1.1.1 打開目錄 2
1.1.2 關閉目錄 3
1.1.3 讀取目錄中的檔案 3
1.1.4 創建目錄 3
1.1.5 刪除目錄 4
1.2 PHP中檔案操作詳解 4
1.2.1 打開檔案 4
1.2.2 關閉檔案 5
1.2.3 讀取檔案 5
1.2.4 寫入檔案 6
1.2.5 刪除檔案 6
1.2.6 複製檔案 7
1.3 本地檔案的操作實例——小型留言本 7
1.3.1 留言發表模組 7
1.3.2 瀏覽模組 9
1.4 遠程檔案的操作實例 10
1.5 檔案的上傳與下載 10
1.5.1 檔案的上傳 10
1.5.2 檔案的下載 11
1.6 小結 12
第2章 字元的處理與正則表達式 13
在PHP中,對於字元的處理是一個很重要的部分,很多套用中都包含有字元處理的功能,而正則表達式則是有效地處理一些複雜字元操作的便利方式。本章將重點介紹PHP中的一些常見字元處理操作及正則表達式的套用。
2.1 字元類型的特殊性 13
2.2 字元的顯示與格式化 14
2.2.1 字元的顯示 14
2.2.2 字元的格式化 14
2.3 常見的操作 15
2.3.1 字元串重複操作——str_repeat 15
2.3.2 字元串替換操作——str_replace和str_ireplace 16
2.3.3 字元串分解操作——str_split 17
2.3.4 字元串單詞數的計算函式——str_word_count 18
2.3.5 字元串查找操作——strstr 19
2.3.6 獲得字元串長度——strlen 19
2.3.7 獲得字元串子串——substr 19
2.4 正則表達式簡介 20
2.5 正則表達式與字元操作綜合套用 20
2.5.1 獲得與模式匹配的數組單元——preg_grep 21
2.5.2 進行全局正則表達式匹配——preg_match_all 21
2.5.3 進行正則表達式匹配——preg_match 23
2.5.4 轉義正則表達式字元——preg_quote 24
2.5.5 執行正則表達式的搜尋和替換的函式——preg_replace 25
2.5.6 通過回調函式執行正則表達式的搜尋和替換——preg_replace_callback 25
2.5.7 用正則表達式進行字元串分割——preg_split 26
2.6 字元操作的注意事項 27
2.7 小結 29
第3章 數組操作與數據結構算法 30
數組是一個由若干同類型變數組成的集合,引用這些變數時可用同一名字。數組中的每一個變數都叫做數組的一個元素。在開發中,數組有廣泛的用途。本章將對數組及一些數組的使用技巧作詳細講解。
3.1 一維數組與多維數組 30
3.1.1 一維數組簡介 30
3.1.2 多維數組簡介 30
3.2 常用的數組操作 31
3.2.1 數組的創建與調用 31
3.2.2 數組的更新 32
3.2.3 數組元素的遍歷 33
3.3 數組索引與鍵值的操作技巧 34
3.4 數組的排序 36
3.4.1 遞增排序——sort 36
3.4.2 遞減排序——rsort 36
3.4.3 數組排序——array_multisort 37
3.5 幾種數組的套用實例 38
3.5.1 順序查找 38
3.5.2 二分法查找 39
3.5.3 使用array_search函式進行查找 39
3.5.4 線性表的入棧與出棧 40
3.5.5 數組的合併 42
3.5.6 數組的拆分 43
3.5.7 隨機排序 44
3.6 小結 45
第4章 PHP程式調試 46
在PHP的編寫過程中,錯誤是不可避免的,如何有效地調試並修復錯誤是一個程式設計師必備的一種能力。PHP提供了很好的錯誤提示,並且通過與Eclipse工具結合可以很方便地進行程式調試。本章將對PHP中的錯誤類型和程式調試方法進行詳細講解。
4.1 PHP中的錯誤類型 46
4.1.1 語法錯誤 46
4.1.2 語義錯誤 47
4.1.3 邏輯錯誤 47
4.1.4 注釋錯誤 47
4.1.5 運行時錯誤 48
4.2 PHP程式調試策略 48
4.2.1 PHP的錯誤級別 48
4.2.2 打開PHP的錯誤報告 49
4.2.3 使用print進行程式調試 50
4.3 使用PHPEclipse進行PHP程式調試 51
4.3.1 使用Eclipse編寫PHP程式的好處 51
4.3.2 PHPEclipse的安裝與啟動 51
4.3.3 PHPEclipse的使用 52
4.3.4 PHPEclipse的語法錯誤強調功能 53
4.3.5 PHPEclipse的調試界面 54
4.3.6 使用PHPEclipse調試PHP代碼的常見問題 57
4.4 錯誤的處理 58
4.4.1 錯誤的隱藏 58
4.4.2 錯誤信息的定製 59
4.4.3 逾時錯誤的處理 60
4.5 小結 61
第5章 PHP中的異常處理 62
上一章介紹了如何調試PHP中的錯誤,這些錯誤通常是在實際編程中因為程式設計師的失誤或者設計錯誤造成的。在實際運行過程中,往往還可能存在一些環境錯誤。例如,檔案無法找到或者資料庫無法打開等。這些環境錯誤當然可以通過if語句的判斷來識別。但是,PHP還提供了一種更好的異常處理方法,可以有效地解決因為環境錯誤帶來的異常。本章將主要介紹PHP中的異常處理方法。
5.1 異常處理的原理 62
5.2 PHP中的異常處理 62
5.2.1 異常類Exception 63
5.2.2 異常拋出關鍵字throw 64
5.2.3 異常捕獲語句try-catch 65
5.2.4 異常處理函式設定set_exception_handler 66
5.2.5 完整的異常信息 67
5.3 擴展的異常處理類 68
5.4 異常的傳遞與重擲 71
5.5 小結 73
第6章 PHP與表單 74
在Web應用程式的開發中,通常使用表單來實現程式與用戶輸入的互動。用戶通過在表單上輸入數據,將一些信息傳輸給網站的程式以進行相應的處理。當用戶在Web頁面中的表單內填寫好信息以後,可以通過單擊按鈕或連結來實現數據的提交。本章將主要介紹PHP中表單的套用,PHP程式通過接收用戶在表單中輸入的信息實現與用戶的互動。
6.1 HTML表單簡介 74
6.1.1 表單標籤form 74
6.1.2 輸入標籤input與文本框 75
6.1.3 按鈕 76
6.1.4 單選框與複選框 77
6.1.5 多行文本域標籤textarea 78
6.1.6 下拉框與列表框標籤select 79
6.2 表單數據的接收 79
6.2.1 GET方法 80
6.2.2 POST方法 82
6.3 常用表單數據的驗證方法 83
6.3.1 姓名驗證 83
6.3.2 日期驗證 84
6.3.3 E-mail地址驗證 84
6.3.4 密碼欄位的驗證 84
6.3.5 改進的用戶信息輸入程式 85
6.4 URL編碼解碼函式 87
6.4.1 編碼字元串——urlencode 87
6.4.2 解碼字元串——urldecode 87
6.5 小結 88
第7章 PHP與JavaScript互動 89
前面幾章介紹了如何使用PHP語言來實現一些基本操作。PHP是一種後台語言,在執行時會將PHP程式的運行結果以靜態HTML的形式返回給客戶端。也就是說,在客戶端並不能看見PHP代碼。本章將要介紹一種流行的在客戶端執行的前台程式語言——JavaScript。在實際套用中,往往會結合套用後台語言和前台語言以實現一些需要的功能。
7.1 JavaScript簡介 89
7.2 JavaScript的數據類型 89
7.3 JavaScript程式設計基礎 90
7.3.1 在HTML中嵌入JavaScript 90
7.3.2 變數 91
7.3.3 注釋 91
7.3.4 函式的定義與調用 92
7.3.5 條件語句 92
7.3.6 循環語句 95
7.3.7 對象 97
7.3.8 事件 98
7.4 PHP動態生成JavaScript代碼 99
7.4.1 多行輸出 99
7.4.2 單行輸出 99
7.4.3 PHP動態生成JavaScript實例——進度條 100
7.5 JavaScript中調用PHP程式 101
7.5.1 頁面的跳轉 101
7.5.2 隱性調用PHP程式 102
7.6 JavaScript和PHP綜合實例——表單驗證 102
7.6.1 表單設計 103
7.6.2 JavaScript代碼設計 104
7.6.3 PHP代碼設計 105
7.6.4 代碼的運行 106
7.7 小結 107
第2篇 PHP與資料庫
第8章 關係型資料庫的基礎知識 110
在第一篇中,介紹了PHP的各種基本套用。從本章開始,將介紹PHP與資料庫的結合使用。本章將主要介紹一些關係型資料庫的基礎知識。
8.1 關係型資料庫與關係型資料庫系統的介紹 110
8.2 關係型資料庫系統的結構與運行過程 111
8.2.1 關係型資料庫系統的層次結構 111
8.2.2 關係型資料庫系統的運行過程 111
8.3 常用關係型資料庫的介紹 112
8.3.1 MySQL 112
8.3.2 ORACLE 112
8.3.3 SYBASE 113
8.3.4 DB2 113
8.3.5 SQL Server 113
8.4 SQL語言簡介 113
8.5 常見資料庫設計問題 114
8.6 關係型資料庫的設計原則 114
8.6.1 第一範式(1NF) 115
8.6.2 第二範式(2NF) 115
8.6.3 第三範式(3NF) 116
8.7 資料庫設計的方法與步驟 116
8.7.1 需求分析 117
8.7.2 概念設計的E-R方法 121
8.7.3 資料庫邏輯設計方法 121
8.7.4 物理設計階段 124
8.7.5 資料庫實施階段 124
8.7.6 資料庫運行和維護階段 124
8.8 小結 124
第9章 MySQL的安裝與操作 125
上一章對資料庫管理系統的基本特點作了一些簡要介紹,並且介紹了常見的幾款關係型資料庫系統,MySQL就是其中之一。在與PHP的套用中,MySQL是最常用到的一款。本章將主要介紹如何安裝和配置MySQL資料庫伺服器,並對MySQL資料庫伺服器的一些常見操作加以介紹。
9.1 MySQL資料庫伺服器介紹 125
9.2 安裝與配置 125
9.2.1 下載MySQL 125
9.2.2 MySQL的安裝 126
9.2.3 MySQL的配置 127
9.2.4 MySQL的啟動與關閉 129
9.3 資料庫與表的創建 129
9.3.1 登錄與退出MySQL命令行管理模式 130
9.3.2 MySQL的資料庫操作 130
9.3.3 表的創建 132
9.4 數據類型的介紹 134
9.5 索引與唯一值的介紹 135
9.6 數據的操作 136
9.6.1 表的修改 136
9.6.2 表的刪除 137
9.6.3 數據的查詢 137
9.6.4 數據的插入 142
9.6.5 數據的更新 143
9.6.6 數據的刪除 144
9.7 小結 144
第10章 MySQL與PHP的套用 145
上一章介紹了如何通過MySQL命令行對MySQL資料庫進行操作。在PHP中,使用MySQL擴展來實現對MySQL資料庫的操作。其基本操作方法與在命令行上進行操作大致相同,只是操作命令都是寫到PHP腳本中來完成的。本章將介紹如何使用PHP對資料庫操作,並具體介紹PHP與MySQL的結合使用。
10.1 PHP結合資料庫套用的優勢 145
10.2 Web資料庫的工作原理 145
10.3 使用PHP操作MySQL資料庫 146
10.3.1 資料庫伺服器的連線與斷開 146
10.3.2 選擇資料庫 147
10.3.3 執行SQL語句 147
10.3.4 獲得查詢結果集中的記錄數 149
10.3.5 獲得結果集中的某一條記錄 149
10.3.6 逐行獲取結果集中的每一條記錄 150
10.3.7 結果集的分頁 152
10.3.8 用戶動態添加記錄 153
10.3.9 用戶動態更新記錄 155
10.3.10 用戶動態刪除記錄 157
10.4 使用PHP獲取MySQL資料庫的信息 158
10.4.1 獲取資料庫的信息 159
10.4.2 獲取表的信息 159
10.4.3 獲取列的數目 160
10.4.4 獲取列的名稱 160
10.4.5 獲取列的數據類型 160
10.4.6 獲取列的長度 161
10.4.7 獲取列的標誌 161
10.4.8 一個完整的查看錶中各列屬性的實例 162
10.5 常見問題與解決方案 162
10.6 小結 164
第11章 資料庫中的程式邏輯 165
上一章介紹了使用PHP對MySQL資料庫進行存取,在一般性的套用中,使用PHP直接對資料庫進行存取的方法套用非常廣泛。有時候,一些基本的資料庫套用可能會被反覆用到。如果使用PHP反覆執行這一相同操作,不僅麻煩而且會影響代碼的運行效率。
因此,在某些時候,對於一些小型並且頻繁使用的資料庫操作,可以將其交給資料庫來完成。本章將以MySQL資料庫為例,介紹如何在資料庫中實現這些程式邏輯。
11.1 資料庫程式邏輯與PHP程式邏輯的分體設計原則 165
11.2 資料庫程式邏輯與數據的關係 165
11.3 存儲過程的設計 166
11.3.1 定界符重定義 166
11.3.2 存儲過程的創建與調用 167
11.3.3 存儲過程的參數 168
11.3.4 複合語句 170
11.3.5 變數 170
11.3.6 條件語句 172
11.3.7 循環語句 173
11.3.8 游標 175
11.3.9 存儲過程的刪除 177
11.4 觸發器的設計 177
11.4.1 觸發器的創建與觸發 177
11.4.2 觸發器的刪除 178
11.5 PHP與存儲過程、觸發器 178
11.5.1 PHP調用存儲過程 178
11.5.2 PHP調用觸發器 179
11.6 小結 180
第12章 Session與Cookie 181
在資料庫套用中,難免會涉及用戶登錄功能的編寫。在一些系統中,往往也需要識別用戶的身份。因此,Session與Cookie是Web套用特別是資料庫套用中不可或缺的兩個要素。正是由於Session和Cookie的存在才使頁面間信息的安全傳遞成為可能。本章將結合資料庫的使用實例來介紹PHP中Session和Cookie的套用。
12.1 Session與Cookie簡介 181
12.2 PHP中Session的實現 181
12.2.1 標識開始使用Session 182
12.2.2 Session預定義數組 182
12.2.3 Session的檢測與註銷 182
12.2.4 PHP中Session處理的定製 183
12.3 Session套用實例——登錄驗證 187
12.3.1 資料庫設計 187
12.3.2 HTML表單的設計 187
12.3.3 驗證頁面的編寫 188
12.3.4 歡迎頁面的編寫 189
12.3.5 註銷頁面的編寫 189
12.3.6 代碼的運行 189
12.3.7 代碼的改進 190
12.4 PHP中Cookie的實現 191
12.4.1 Cookie語法格式 191
12.4.2 Cookie預定義數組 191
12.4.3 創建一個Cookie 191
12.4.4 創建一個有時間限制的Cookie 192
12.4.5 創建一個有範圍限制的Cookie 192
12.4.6 刪除Cookie 193
12.4.7 瀏覽器重定向 193
12.4.8 Cookie的常見問題 193
12.5 Cookie套用實例——登錄驗證 194
12.5.1 HTML表單的設計 194
12.5.2 驗證頁面的編寫 194
12.5.3 歡迎頁面的編寫 195
12.5.4 註銷頁面的編寫 196
12.5.5 代碼的運行 196
12.6 Cookie與Session的比較 197
12.7 小結 197
第13章 MySQL與PHP的套用實例——留言本 198
在前面幾章中,介紹了MySQL與PHP結合使用的方法,以及如何在PHP中使用Session和Cookie。本章將從一個PHP留言本的整體設計入手,詳細介紹在實際套用中如何使用PHP結合MySQL開發基於Web的應用程式。
13.1 留言本實例的系統分析 198
13.1.1 系統簡介 198
13.1.2 系統模型設計 198
13.1.3 資料庫設計 199
13.1.4 公共功能設計 200
13.2 使用MySQL與PHP創建一個留言本 200
13.2.1 查看留言功能 201
13.2.2 發表留言功能 203
13.2.3 管理員身份驗證功能 205
13.2.4 管理首頁設計 206
13.2.5 留言回復功能 208
13.2.6 留言刪除功能 209
13.2.7 留言回復刪除功能 210
13.2.8 留言審批功能 210
13.2.9 退出管理員登錄功能 211
13.3 小結 211
第14章 PostgreSQL與PHP的套用 212
前面幾章對MySQL資料庫系統與PHP的套用作了一些詳細介紹。本章將向讀者介紹另外一種常與PHP結合使用的資料庫系統PostgreSQL。通過學習本章,讀者將不僅掌握一些PostgreSQL的常用操作方法,也將對如何使用PHP操作PostgreSQL有一個初步的了解。
14.1 PostgreSQL簡介 212
14.2 PostgreSQL的安裝 212
14.2.1 PostgreSQL的下載 212
14.2.2 PostgreSQL的安裝步驟 213
14.2.3 PostgreSQL服務的啟動與停止 214
14.3 PostgreSQL的基本操作 214
14.3.1 pgAdmin III的啟動 214
14.3.2 伺服器的連線 214
14.3.3 創建一個新資料庫 215
14.3.4 創建一個表 215
14.3.5 對表中數據的操作 217
14.3.6 SQL語句的執行 217
14.4 使用PHP存取PostgreSQL資料庫 218
14.4.1 使用PHP的PostgreSQL擴展 218
14.4.2 資料庫的連線與關閉 218
14.4.3 執行SQL語句 219
14.4.4 獲得查詢結果集中的記錄數 220
14.4.5 逐行獲取結果集中的每一條記錄 221
14.4.6 數據的插入、更新和刪除 222
14.4.7 執行動態SQL語句 225
14.4.8 information_schema 227
14.5 小結 228
第15章 SQL Server與PHP的套用 229
前面兩章對PHP與MySQL和PostgreSQL資料庫伺服器的連線進行了簡單介紹。在實際套用中,由於MySQL和PostgreSQL的大型數據處理能力比較差,因而往往使用較大型的資料庫系統進行部署。SQL Server就是微軟推出的一款適合較大型系統使用的資料庫伺服器軟體。本章將對SQL Server與PHP的套用進行介紹。
15.1 SQL Server簡介 229
15.2 SQL Server的安裝 230
15.2.1 SQL Server的安裝步驟 230
15.2.2 SQL Server Management Studio 231
15.3 SQL Server的基本操作 232
15.3.1 創建一個資料庫 232
15.3.2 創建一個表 232
15.3.3 對表中數據的操作 233
15.3.4 SQL語句的執行 233
15.4 使用PHP存取SQL Server資料庫 234
15.4.1 使用PHP的mssql擴展 234
15.4.2 資料庫的連線與關閉 234
15.4.3 執行SQL語句 235
15.4.4 獲得查詢結果集中的記錄數 236
15.4.5 逐行獲取結果集中的每一條記錄 237
15.5 小結 239
第16章 Oracle與PHP的套用 240
上一章介紹了SQL Server與PHP的套用。與SQL Server類似,Oracle是甲骨文公司推出的一款大型資料庫管理系統。在實際套用中,Oracle具有更高的數據處理和管理能力。因此,Oracle受到了很多大型企業的青睞。本章將介紹Oracle的基本操作以及與PHP的套用。
16.1 Oracle簡介 240
16.2 Oracle的安裝 241
16.2.1 Oracle的安裝過程 241
16.2.2 Oracle Application Express 241
16.3 Oracle的基本操作 242
16.3.1 創建一個表 242
16.3.2 對表中數據的操作 244
16.3.3 SQL語句的執行 244
16.4 使用PHP存取Oracle資料庫 245
16.4.1 使用PHP的oci8擴展 245
16.4.2 資料庫的連線與關閉 246
16.4.3 執行SQL語句 246
16.4.4 逐行獲取結果集中的每一條記錄 247
16.5 小結 248
第17章 不同資料庫的差異 249
目前市場上流行的資料庫有很多種,雖然這些資料庫在開發時遵循同樣的一個標準,但是,每種資料庫都有一些與其他同類產品不一樣的地方。本章將主要介紹不同種資料庫間的差異,並對PHP與不同資料庫的操作上的差異作一些介紹。
17.1 SQL語言標準以及常見關係型資料庫的SQL擴展 249
17.1.1 ANSI SQL語言標準 249
17.1.2 MySQL對ANSI SQL的擴充 250
17.1.3 SQL Server的T-SQL 251
17.1.4 Oracle的PL/SQL 252
17.2 PHP資料庫套用的差異 253
17.2.1 MySQL與PHP的套用 253
17.2.2 PostgreSQL與PHP的套用 253
17.2.3 SQL Server與PHP的套用 254
17.2.4 Oracle與PHP的套用 255
17.2.5 SQLite與PHP的套用 255
17.2.6 Access與PHP的套用 256
17.2.7 ODBC與PHP的套用 256
17.3 小結 258
第3篇 PHP的高級套用
第18章 PEAR、PECL的套用 260
本書前面的章節介紹了PHP的基本使用以及與資料庫結合的實例。通過對前面的學習,讀者應該能夠使用PHP設計並實現一些常見的功能了。很多時候,並不需要自己逐行完成套用中的所有代碼,因為很多常見的功能可能早已被人開發出來了。如果能夠有效地利用這些資源,就能在實際開發中達到事半功倍的效果。本章將介紹的PEAR與PECL就是這樣的資源庫。
18.1 PEAR與PECL的介紹 260
18.2 PEAR類庫組件的安裝 260
18.3 PEAR類庫的安裝與使用 264
18.3.1 查看已安裝PEAR包 264
18.3.2 查看PEAR包的詳細信息 264
18.3.3 安裝一個PEAR包 265
18.3.4 PEAR包的升級 266
18.3.5 PEAR包的使用 266
18.4 常用的PEAR類庫實例 266
18.4.1 使用DB類庫進行資料庫查詢 267
18.4.2 使用Auth_HTTP類庫進行身份校驗 269
18.4.3 使用HTML_Template_IT類庫進行模板替換 271
18.5 PECL擴展庫的安裝與使用 272
18.6 PECL擴展庫套用實例——Zip擴展 272
18.6.1 Zip擴展的安裝 273
18.6.2 一個Zip擴展套用實例 273
18.7 小結 274
第19章 ADOdb類庫套用 275
本書第2篇介紹了PHP與MySQL等幾種常用資料庫的結合使用。PHP提供了多種資料庫訪問組件來訪問不同類型的資料庫。PHP的這種機制為PHP程式設計師製造了很多麻煩,為了訪問不同種類的資料庫,不得不記住多種多樣的資料庫存取函式。而本章將要介紹的ADOdb類庫則有效地解決了這個問題。ADOdb類庫通過對不同資料庫的差異封裝,可使PHP套用可以輕鬆地在不同的資料庫之間進行切換。
19.1 ADOdb介紹 275
19.1.1 ADOdb的優勢 275
19.1.2 ADOdb的適用場合 276
19.2 ADOdb類庫的安裝與配置 276
19.2.1 ADOdb的下載與安裝 276
19.2.2 ADOdb的第一個測試程式 276
19.3 ADOdb的常用資料庫操作 278
19.3.1 連線資料庫 278
19.3.2 數據的插入、更新和刪除 281
19.3.3 數據查詢 281
19.3.4 記錄分頁的實現 283
19.3.5 多個資料庫的連線方法 285
19.4 ADOdb的程式調試 286
19.5 小結 288
第20章 FPDF類庫套用 289
PDF文檔格式是當前流行的電子文檔與電子表格的一種標準格式。PDF提供了完善的壓縮處理,無論創建者創建的PDF文檔使用了什麼字型,使用了什麼樣的圖片或者版式設計,瀏覽者都可以通過免費的Adobe Reader對其進行閱讀。本章將要介紹的是一個可以用PHP創建PDF文檔的類庫FPDF。
20.1 FPDF簡介 289
20.2 FPDF的安裝與配置 289
20.3 FPDF創建PDF文檔 289
20.3.1 FPDF創建Hello World 290
20.3.2 在PDF中插入圖片 291
20.3.3 頁眉與頁腳 292
20.3.4 繪製表格 293
20.4 為FPDF增加中文支持 295
20.5 FPDF的實際套用 296
20.5.1 為文章系統創建PDF頁面 297
20.5.2 動態生成企業產品名錄 299
20.6 小結 300
第21章 PHP的快取與靜態化套用 301
前面已經介紹了許多PHP套用的例子,這些例子無一例外是通過訪問PHP腳本檔案來完成的。用戶每次在瀏覽器端的訪問都是對PHP腳本的執行過程,程式根據用戶的需要返回信息。對於一些大型系統,訪問量往往很大,頻繁的動態操作與資料庫操作大大加重了伺服器的負擔。
在這種情況下,通常使用快取技術或者靜態化操作。也就是將PHP腳本的頁面結果放到快取中,或者放到靜態HTML檔案中。這樣,訪問者在訪問頁面時,不必重新執行動態PHP代碼即可獲得結果,可大大緩解伺服器的負擔。本章將介紹快取機制與靜態化的原理,以及使用PHP實現靜態化的方法。
21.1 為什麼要靜態化 301
21.2 大型套用的快取機制與靜態化 304
21.2.1 快取機制 304
21.2.2 靜態化機制 305
21.3 PHP如何實現靜態化 305
21.3.1 根據模板生成靜態頁面 305
21.3.2 資料庫與靜態頁的關係 306
21.3.3 靜態頁內容的修改 308
21.3.4 模板的替換 309
21.3.5 靜態頁上的動態操作 310
21.3.6 靜態頁面檔案的目錄 311
21.4 小結 314
第22章 PHP與XML格式操作 315
XML是一種流行的半結構化檔案格式,以一種類似資料庫的格式存儲數據。在實際套用中,一些簡單的、安全性較低的數據往往使用XML檔案的格式進行存儲。這樣做一方面可以通過減少與資料庫的互動性操作提高讀取效率,另一方面可以有效利用XML的優越性降低程式的編寫難度。
PHP提供了一整套的讀取XML檔案的方法,很容易就可以編寫基於XML的腳本程式。本章將介紹PHP與XML的操作方法,並對幾個常用的XML類庫作一些簡要介紹。
22.1 XML簡介 315
22.2 簡單的XML操作 316
22.2.1 創建一個SimpleXML對象 316
22.2.2 讀取SimpleXML對象中的XML數據 318
22.2.3 XML數據的修改 322
22.2.4 標準化XML數據 322
22.2.5 XML數據的存儲 322
22.3 XML文檔的動態創建 323
22.3.1 DOM簡介 324
22.3.2 DOM文檔的創建與使用 324
22.3.3 DOM元素的操作 327
22.3.4 DOM節點的操作 329
22.3.5 DOM組件操作實例 329
22.4 XSLT的使用 330
22.4.1 XSLT簡介 331
22.4.2 使用PHP與XSLT生成HTML頁面 332
22.5 XML套用實例一——留言本 333
22.5.1 XML檔案結構設計 333
22.5.2 提交頁面的編寫 334
22.5.3 顯示頁面的編寫 335
22.6 XML套用實例二——為網站生成RSS頁面 336
22.6.1 什麼是RSS 336
22.6.2 RSS頁面的編寫 338
22.7 小結 339
第23章 Smarty類庫 340
前面的章節介紹了很多在HTML頁面中內嵌PHP代碼的例子。隨著Web技術的不斷發展,很多Web程式設計師已經不再滿足於這種在HTML頁面中內嵌PHP代碼的方法。因為這樣做的一個很大弊端是為後期維護帶來了很多麻煩,程式設計師不得不修改PHP代碼來迎合頁面設計的改動。
本章要介紹的Smarty類庫有效地解決了這一問題。Smarty類庫通過建立模板庫來存放靜態HTML頁面中的HTML代碼,並使用PHP代碼對其中的元素進行賦值。這樣,當頁面的設計發生變化時,只需要修改模板頁面就可以了。
23.1 Smarty簡介 340
23.2 Smarty的安裝與配置 341
23.2.1 Smarty的安裝 341
23.2.2 Smarty的配置 341
23.3 Smarty程式設計 342
23.3.1 簡單的Smarty程式設計 342
23.3.2 模板對象屬性的定義 343
23.3.3 Smarty程式編寫的一般步驟 344
23.4 Smarty模板設計 344
23.4.1 模板中的變數 344
23.4.2 變數的修飾 345
23.4.3 區域循環方法 346
23.4.4 模板中的條件判斷 348
23.4.5 外部檔案的載入 350
23.5 Smarty的實際套用——多模板網站 351
23.5.1 模板的設計 351
23.5.2 頁面實現 352
23.6 小結 353
第24章 ThinkPHP框架 354
上一章介紹了使用Smarty類庫進行套用系統開發。Smarty使用模板構架有效地分離了代碼與頁面,當頁面發生變化的時候,程式設計師並不需要修改代碼。本章將要介紹另外一種基於模板的開發框架——ThinkPHP框架。
ThinkPHP框架是近兩年剛剛發展起來的一個PHP套用開發框架。該框架借鑑了很多優秀框架的經驗和模式,使用最通用的MVC構架和面向對象理念,是一款可以實現網站快速開發的優秀的輕量級框架。
24.1 ThinkPHP的安裝與項目創建 354
24.1.1 ThinkPHP的獲取與安裝 354
24.1.2 項目入口檔案 354
24.1.3 項目的創建 355
24.2 項目的配置 355
24.3 控制器類的創建 356
24.3.1 控制器的模組與操作 356
24.3.2 URL的處理 358
24.4 模型類的創建 358
24.4.1 模型的定義與實例化 359
24.4.2 資料庫的連線與操作 360
24.5 模板檔案的編寫 362
24.5.1 模板中的變數 362
24.5.2 模板中函式的使用 363
24.5.3 幾種基本標籤的使用 364
24.6 ThinkPHP套用實例——線上日程表 366
24.6.1 資料庫的設計 366
24.6.2 模板的設計 367
24.6.3 控制器的實現 368
24.7 小結 369
第25章 Zend Framework框架 370
隨著Web技術的發展,傳統的編程模式已經越來越不能滿足日益快速的技術發展。近些年來,一些致力於整合功能的框架技術蓬勃發展起來。上一章介紹的ThinkPHP框架是一個可以滿足基本需要的輕量級框架。而由Zend公司構建的框架Zend Framework則更適合大型系統的開發。本章將簡要介紹Zend Framework的使用方法。
25.1 Zend Framework的安裝與項目創建 370
25.2 dispatcher與Bootstrap 372
25.3 控制器程式的編寫 372
25.3.1 首頁控制器程式的編寫 373
25.3.2 其他頁面控制器程式的編寫 374
25.4 視圖檔案的調用 376
25.4.1 默認視圖檔案的使用 376
25.4.2 模板檔案的調用 376
25.5 數據模型的生成 377
25.5.1 資料庫的連線 377
25.5.2 數據模型的創建 378
25.5.3 數據模型的使用 379
25.6 用戶表單的處理 380
25.6.1 用戶表單的生成 380
25.6.2 表單數據的驗證與過濾 382
25.7 Zend Framework套用實例——留言本 384
25.8 小結 388
第26章 CakePHP框架 389
CakePHP是近兩年來新生的一款開源的PHP框架。該框架的設計理念來自Ruby的Rails框架,使PHP程式設計師可以比較迅速地創建Web應用程式。CakePHP框架使用了MVC體系結構,同時兼容PHP 4和PHP 5,並且擁有很靈活的數據模型與許可權管理機制。因此,近年來CakePHP受到了越來越多PHP程式設計師的關注與青睞。CakePHP的最新版本為1.3.0,本章將以該版本為例簡要介紹CakePHP的使用方法。
26.1 CakePHP的安裝與配置 389
26.2 Scaffolding簡介 391
26.3 CakePHP的數據模型 392
26.3.1 數據模型的定義 392
26.3.2 數據的查詢 393
26.3.3 數據的保存 395
26.3.4 數據的刪除 397
26.3.5 對象的關聯 398
26.4 控制器的編寫 400
26.4.1 控制器的基本使用 400
26.4.2 控制器的屬性與方法 401
26.5 視圖的調用 404
26.5.1 視圖的布局 404
26.5.2 視圖的元素 405
26.5.3 視圖的快取 405
26.6 ACL許可權控制 406
26.6.1 什麼是ACL 406
26.6.2 使用配置檔案定義許可權 407
26.6.3 使用資料庫定義許可權 408
26.7 CakePHP套用實例——員工工資單 409
26.7.1 登錄框與許可權控制 409
26.7.2 工資單頁面的編寫 410
26.8 小結 412
第27章 Symfony框架 413
前面幾章介紹了幾種常見的PHP開發框架。本章將繼續介紹另一種近幾年流行起來的新的開發框架Symfony。Symfony框架也是一款基於MVC架構的框架,並且使用到了一些其他PHP開源項目的部分代碼以增強其功能。因此,近年來Symfony受到了越來越多大型項目的青睞。Symfony框架的最新版本為1.4.3,本章將以該版本為例簡要介紹Symfony的使用方法。
27.1 Symfony的安裝 413
27.2 開始一個新項目 414
27.3 Symfony的數據模型 416
27.3.1 Schema的編寫 416
27.3.2 數據模型初始化 420
27.4 控制器與視圖 421
27.4.1 項目的基本構架 421
27.4.2 視圖的布局 422
27.4.3 控制器與模板 424
27.5 管理生成器 426
27.5.1 管理後台的生成 427
27.5.2 管理後台的配置 427
27.6 Symfony套用實例——個人部落格 430
27.7 小結 433
第28章 PHP與圖像操作 434
PHP不僅可以用來生成HTML頁面,還可以用來創建和操作二進制檔案,例如圖片。使用PHP程式動態生成圖片可以實現生成縮略圖、驗證碼等多種功能,在實際套用中很常用。在PHP中,通常使用GD庫來實現對圖像的操作。本章將介紹如何使用GD庫來操作圖像檔案。
28.1 PHP圖像函式館簡介 434
28.2 GD庫的配置 434
28.3 一個簡單圖像創建程式 436
28.4 GD庫的套用實例 437
28.4.1 使用GD庫創建圖片縮略圖 437
28.4.2 使用GD庫生成驗證碼 439
28.4.3 使用GD庫下載遠程圖片 441
28.4.4 使用GD庫為頁面增加水印 441
28.5 小結 442
第29章 JpGraph創建統計圖 443
上一章介紹了如何使用GD庫來創建圖像。使用GD庫提供的各種函式可以生成多種圖像,但是,如果需要在PHP中創建一些統計圖,使用GD庫就顯得很麻煩了。本章將要介紹一種專門用於輸出統計圖的JpGraph庫。該庫在數據統計等方面有很大優勢。在實際套用中,可以很容易使用JpGraph生成大方得體的統計圖。
29.1 JpGraph簡介 443
29.2 JpGraph的安裝與配置 443
29.2.1 JpGraph的安裝 443
29.2.2 JpGraph的配置 444
29.3 JpGraph繪製統計圖實例 444
29.3.1 簡單的X-Y坐標圖 444
29.3.2 改進的X-Y坐標圖 447
29.3.3 柱形圖 450
29.3.4 餅圖 451
29.3.5 3D餅圖 452
29.4 JpGraph套用實例——工廠銷量查詢系統 453
29.5 小結 457
第30章 PHP訪問LDAP伺服器 458
LDAP的全稱是“輕量級目錄訪問協定(Lightweight Directory Access Protocol)”,是一種簡單的目錄協定。所謂目錄,是一種專門的資料庫,可以服務於任何應用程式。在企業套用中使用LDAP可以讓企業範圍內的所有應用程式從LDAP目錄中獲取信息,使應用程式可以通過網路直接從LDAP目錄獲取信息,而不再局限於作業系統與伺服器的類型。本章將主要介紹如何使用PHP來訪問LDAP。
30.1 LDAP簡介 458
30.2 LDAP伺服器的安裝與配置 459
30.2.1 OpenLDAP的安裝 459
30.2.2 OpenLDAP的配置 460
30.2.3 OpenLDAP的啟動與關閉 461
30.2.4 OpenLDAP的數據操作 462
30.2.5 phpLDAPadmin簡介 463
30.3 PHP中LDAP擴展的配置 464
30.4 PHP與LDAP的相關操作 464
30.4.1 連線LDAP伺服器 464
30.4.2 綁定LDAP伺服器 465
30.4.3 斷開LDAP伺服器 465
30.4.4 查詢LDAP目錄內容 465
30.4.5 獲得查詢結果中的值 467
30.4.6 計算查詢結果中的記錄數 468
30.4.7 向LDAP添加一條新記錄 469
30.4.8 更新LDAP中的一條記錄 469
30.4.9 從LDAP中刪除一條新記錄 470
30.4.10 錯誤處理 470
30.5 使用LDAP驗證用戶身份 471
30.6 小結 472
第31章 PHP與郵件系統 473
在實際套用中,通常需要使用郵件系統來與網站的訪問者交流。例如,一個網站的新註冊用戶可以通過郵件來獲取註冊確認信息,也可以通過郵件來找回密碼等。因此,在一些常見的網站系統中,往往包含郵件傳送的功能。本章將介紹如何使用PHP來傳送郵件。
31.1 PHP郵件傳送功能配置 473
31.1.1 PHP中的SMTP功能配置 473
31.1.2 建立自己的SMTP伺服器 474
31.2 PHP中的mail函式 476
31.2.1 簡單的郵件傳送方法 476
31.2.2 傳送HTML格式文本 477
31.2.3 傳送帶附屬檔案的郵件 477
31.3 一個簡單的郵件傳送類 479
31.3.1 郵件傳送類的創建 479
31.3.2 郵件傳送系統的實現 481
31.4 小結 483
第32章 PHP最佳化器與加速器 484
PHP代碼在運行時是通過編譯器首先編譯成中間代碼,然後再被伺服器運行得到用戶所需要的結果。因此,中間代碼的優劣直接決定了代碼的最終運行速度。目前,有一些常見的PHP加速器可以通過對中間代碼進行最佳化來提高PHP代碼的運行速度。這樣,網站的訪問者就可以更快地打開網頁。
本章將介紹幾款常見的PHP加速器,讀者可以根據實際情況選擇其中的一款安裝,從而有效地提高PHP的運行效率。
32.1 最佳化器Zend Optimizer 484
32.1.1 Zend Optimizer的安裝 484
32.1.2 Zend Optimizer的配置 486
32.2 加速器PHP Accelerator 487
32.2.1 PHP Accelerator的安裝 487
32.2.2 PHP Accelerator的配置 488
32.3 開源的最佳化器Turck MMCache 488
32.3.1 Turck MMCache的安裝 489
32.3.2 Turck MMCache的配置 489
32.4 開源的加速器eAccelerator 490
32.5 小結 490
第4篇 PHP與實際項目
第33章 用PHP構建內容管理系統CMS 492
CMS是“內容管理系統(Content Management System)”的縮寫,任何基於內容的網站系統都可以稱為CMS。例如,文章管理、圖片管理以及綜合網站管理程式都是CMS的典型實現。一般的CMS系統都是基於模板設計,網站開發人員可以通過簡單地修改模板的設計快速實現網站所需功能。本章將以一個簡單的文章管理程式為例,說明如何開發一個CMS系統。
33.1 了解CMS需求 492
33.2 資料庫設計 492
33.3 關鍵技術的實現 495
33.3.1 資料庫連線公用代碼 496
33.3.2 網站開關的設計 496
33.3.3 模板更換機制 496
33.3.4 HTML編碼轉換 497
33.4 頁面代碼設計 497
33.4.1 首頁的實現 497
33.4.2 註冊頁面的實現 501
33.4.3 分類文章列表頁面與文章顯示頁面的實現 503
33.4.4 投稿頁面與添加新文章頁面的實現 507
33.4.5 文章管理頁面的實現 509
33.4.6 文章類別維護頁面的實現 513
33.4.7 網站參數配置頁面的實現 518
33.4.8 網站模板管理頁面的實現 521
33.4.9 退出登錄頁面的實現 524
33.5 小結 525
第34章 用PHP構建搜尋引擎 526
網際網路時代是一個信息爆炸的時代,面對著信息高速膨脹的網際網路,怎樣快捷有效地得到自己所需要的信息成為了一個關鍵的課題。於是,各種各樣的搜尋引擎在網際網路上誕生了出來,例如,Google、Yahoo和百度等,都是流行的搜尋引擎。這些搜尋引擎已經逐漸成為人們生活不可或缺的一部分。
本章將要介紹如何使用PHP來進行信息搜尋,以及調用這些現有的搜尋引擎進行搜尋。
34.1 PHP對資料庫數據的搜尋 526
34.1.1 資料庫創建 526
34.1.2 搜尋頁面的設計 527
34.1.3 內容顯示頁面的設計 528
34.1.4 系統集成的調度策略 529
34.2 PHP對文本檔案的搜尋 530
34.3 PHP對現有搜尋引擎的調用 531
34.4 小結 533
第35章 PHP與企業辦公自動化OA系統 534
OA是辦公自動化(Office Automation)的縮寫。OA系統是基於Internet或Intranet的概念、以企業工作流為基礎構建的辦公自動化系統。OA系統能夠有效地對企業信息進行管理,並且在企業內部共享信息。OA系統的存在改變了過去複雜低效的辦公模式,使辦公管理和決策變得更加簡單。本章將以一個簡單的OA系統為例來介紹如何使用PHP開發OA系統。
35.1 了解企業OA系統的需求 534
35.2 資料庫設計 535
35.3 關鍵技術的實現 536
35.3.1 根據登錄用戶的許可權進入不同的頁面 536
35.3.2 項目與任務狀態的級聯更新 537
35.4 頁面代碼的設計 538
35.4.1 公共資料庫連線代碼 538
35.4.2 登錄頁面的設計 538
35.4.3 管理員/經理項目列表頁面的設計 540
35.4.4 創建新項目頁面的設計 542
35.4.5 項目修改頁面的設計 545
35.4.6 普通員工任務列表頁面的設計 550
35.4.7 新賬號分配頁面的設計 552
35.4.8 賬號許可權設定頁面的設計 555
35.4.9 過期項目統計頁面的設計 558
35.4.10 經理項目分配情況統計頁面的設計 560
35.4.11 員工任務分配情況統計頁面的設計 561
35.4.12 公司項目運營情況統計頁面的設計 562
35.5 小結 565
第36章 PHP與流程管理系統 566
上一章介紹了如何使用PHP構建一個簡單的OA系統。在企業的日常工作中,往往需要遵循一些流程來工作。例如,報銷發票的流程可以是報銷人提出申請→相關經理批准→財務主管批准→支付報銷金額給報銷申請人等。流程管理系統可以簡單地實現對流程中各個過程進行追蹤並提示相關人員完成流程中相應的步驟。本章將以一個設備維修流程的管理系統為例簡要介紹如何使用PHP來構建流程管理系統。
36.1 流程管理系統的需求 566
36.2 資料庫設計 567
36.3 關鍵技術的實現 569
36.3.1 使用觸發器來記錄請求更新日誌 569
36.3.2 根據角色的不同對請求進行不同的操作 569
36.4 頁面代碼的實現 570
36.4.1 設備維修請求列表頁面的實現 570
36.4.2 提交新請求頁面的實現 572
36.4.3 需要執行操作的請求列表頁面的實現 574
36.4.4 對請求執行操作頁面的實現 576
36.4.5 操作日誌列表頁面的實現 582
36.5 小結 584
第37章 PHP與資源管理系統 585
前面兩章站在企業層面上介紹了如何使用PHP創建企業OA系統和流程管理系統。目前常見的企業級系統還包括資源管理系統(Enterprise Resource Management System,ERM)。所謂資源包含企業中的網路資源、工程方面的資源和財務資源等。一個完整的資源管理系統應該包括對資源的數據存儲、業務分析以及輔助決策等,並且要與其他現有系統具有良好的接口。本章將以一個小型庫存資源管理系統為例,簡要介紹如何使用PHP構建一個資源管理系統。
37.1 資源管理系統的需求 585
37.2 資料庫設計 586
37.3 關鍵技術的實現 588
37.3.1 使用SQL計算獎金額度 589
37.3.2 使用觸發器來限制獎金額度 589
37.3.3 使用存儲過程從其他數據表獲取數據 590
37.3.4 自動生成PHP代碼控制網站開關 590
37.3.5 使用JpGraph生成統計圖 591
37.4 各功能模組的具體實現 592
37.4.1 用戶許可權認證的實現 592
37.4.2 訂單輸入模組的實現 593
37.4.3 庫存管理模組的實現 597
37.4.4 賬目管理模組的實現 601
37.4.5 獎金計算模組的實現 606
37.4.6 年度統計模組的實現 609
37.5 小結 611
第38章 多國語言處理策略 612
前面幾章介紹了如何使用PHP來開發一些實際項目。隨著信息全球化的高速發展,套用系統向全球化發展的趨勢也越加明顯。例如,一個跨國企業的辦公系統可能要面向這家跨國企業分布在全球的多家分公司,在開發這個辦公系統時可能就需要對多種語言提供支持。本章將以一個小型系統為例來介紹一下如何對PHP開發的系統提供多國語言支持的功能。
38.1 對字元編碼與GB2312、GBK和UTF-8的理解 612
38.1.1 GB2312與GBK 612
38.1.2 Unicode、UCS與UTF-8 612
38.1.3 網頁編碼的實現 613
38.2 GLS設計思想簡介 614
38.3 客戶端語言選項的設定與獲取 615
38.3.1 客戶端語言選項的設定 615
38.3.2 使用PHP獲取客戶端語言選項 615
38.4 一個簡單的帶有多國語言支持的套用開發 615
38.4.1 資料庫設計 615
38.4.2 頁面代碼的開發 616
38.4.3 語言設定頁面的開發 620
38.4.4 語言配置檔案選取頁面的開發 620
38.4.5 語言配置檔案的設計 621
38.5 小結 624
第39章 PHP在入口網站中的套用 625
在網際網路發達的今天,網民的數量也在高速增長,越來越多的大型網站通過將各種數據資源和網際網路資源結合起來構成了入口網站。入口網站通過將新聞系統、聊天室、BBS和電子商務等多種套用系統整合起來為用戶提供了豐富的網際網路信息。本章將主要介紹PHP在入口網站中的一些套用。
39.1 入口網站的特點 625
39.2 靜態快取和動態快取 626
39.2.1 靜態快取與動態快取簡介 626
39.2.2 一個對系統實現靜態快取的例子 626
39.2.3 一個對系統實現動態快取的例子 628
39.3 入口網站中的互動設計 630
39.3.1 什麼是互動設計 631
39.3.2 一個不好的互動設計例子 631
39.3.3 改進的互動設計例子 633
39.4 負載均衡技術簡介 635
39.4.1 常用的負載均衡技術 635
39.4.2 常用的負載均衡算法 636
39.5 一個使用用戶排隊機制解決網站大訪問量的例子 636
39.6 小結 638
第5篇 PHP的擴展套用
第40章 PHP與網路客戶端 640
前面介紹了使用PHP構建伺服器端頁面,用戶可以通過瀏覽器訪問遠程伺服器上的PHP頁面來實現與伺服器的互動操作。除此之外,PHP還可以用來開發網路客戶端,用戶可以在自己的主機上訪問遠程伺服器,甚至可以通過命令行來與遠程伺服器進行互動。本章將介紹如何使用PHP訪問遠程Web伺服器和FTP伺服器,以及使用命令行來運行PHP代碼。
40.1 PHP訪問遠程Web頁面 640
40.1.1 fsockopen函式 640
40.1.2 一個遠程提交數據的實例 641
40.2 PHP訂閱RSS 642
40.2.1 下載遠程RSS 642
40.2.2 RSS的解析與保存 643
40.3 PHP訪問FTP伺服器 644
40.3.1 連線和斷開FTP伺服器 644
40.3.2 登錄FTP伺服器 644
40.3.3 獲取檔案列表 645
40.3.4 檔案的上傳、下載和刪除 646
40.3.5 目錄的創建和刪除 647
40.4 PHP的命令行模式 648
40.4.1 PHP命令行程式簡介 648
40.4.2 執行參數的獲取 649
40.4.3 一個使用命令行方式訪問FTP的實例 649
40.5 小結 652
第41章 PHP與XML-RPC、SOAP 653
前面介紹了如何通過訪問PHP頁面來實現與伺服器的互動。除此之外,PHP還支持開發供程式調用的接口頁面。通過這些接口,遠程程式可以很容易地實現與伺服器的互動操作,而不需要複雜地通過對一般頁面進行讀取來進行互動。本章將介紹兩種最常見的遠程調用的技術以及使用PHP的實現方法。
41.1 XML-RPC簡介 653
41.1.1 客戶端請求的XML格式 653
41.1.2 伺服器回響的XML格式 656
41.1.3 錯誤信息的XML格式 656
41.2 PHP與XML-RPC的結合實例 657
41.2.1 PHP的XML-RPC庫介紹 657
41.2.2 PHP伺服器端頁面的編寫 658
41.2.3 PHP客戶端頁面的編寫 659
41.3 SOAP簡介 659
41.4 PHP的SOAP套用實例 660
41.4.1 SOAP擴展庫的使用方法 660
41.4.2 伺服器端的編寫 661
41.4.3 客戶端的編寫 662
41.5 小結 662
第42章 PHP與Web Service 663
上一章介紹了如何使用PHP通過XML-RPC和SOAP進行遠程訪問以及遠程過程調用的方法,這些技術不單單實現了通過瀏覽器對頁面的直接訪問,而且提供了可供程式調用的函式為客戶端程式提供了便利。這種技術往往被稱為Web Service,在網際網路技術發展的今天,Web Service提供了一種可程式的數據接口方便了其他程式或客戶端的調用。本章將介紹Web Service技術以及如何使用PHP來實現。
42.1 Web Service簡介 663
42.2 WSDL、UDDI與Web Service 664
42.2.1 WSDL簡介 664
42.2.2 UDDI簡介 664
42.3 PHP與Web Service的互動操作 665
42.3.1 NuSOAP類庫 665
42.3.2 PHP創建Web Service 666
42.3.3 PHP訪問Web Service 668
42.4 小結 670
第43章 PHP與Ajax 671
Ajax是近年來剛剛流行起來的一種技術,全稱是Asynchronous JavaScript and XML(異步JavaScript和XML)。Ajax是多種技術的綜合套用,主要包括JavaScript技術、XML技術、DOM技術和XMLHttpRequest控制項等。Ajax作為Web 2.0的一個重要技術,大大推動了Web技術的發展。本章將結合PHP來簡要介紹一下Ajax的一些常見套用。
43.1 Ajax簡介 671
43.1.1 Ajax工作原理 671
43.1.2 Ajax的優勢與劣勢 672
43.2 XMLHttpRequest的使用 672
43.2.1 Ajax初始化 672
43.2.2 XMLHttpRequest的屬性和方法 673
43.2.3 簡單的伺服器請求 674
43.2.4 HTML檔案的讀取 675
43.2.5 XML檔案的讀取 677
43.3 PHP與Ajax的互動 679
43.3.1 使用GET方式與PHP互動 679
43.3.2 使用POST方式與PHP互動 681
43.4 Ajax套用實例 682
43.4.1 用戶名唯一性驗證的實現 682
43.4.2 動態列表框的實現 684
43.4.3 局部刷新頁面的實現 685
43.4.4 自動刷新頁面的實現 688
43.4.5 進度條的實現 689
43.4.6 表單輸入提示的實現 691
43.5 小結 693
第44章 PHP擴展的開發 694
本書前面的章節介紹了PHP的開發與套用。在進行PHP開發時,有時難免遇到無法使用PHP解決或很難使用PHP來解決的問題,這時就需要使用PHP擴展功能來擴展PHP的功能了。本章將簡要介紹如何在Windows平台下進行PHP擴展的開發。
44.1 PHP擴展開發簡介 694
44.2 使用Visual C++編寫PHP擴展 694
44.2.1 PHP擴展開發的前期準備 695
44.2.2 PHP擴展代碼模板的生成 696
44.2.3 模板代碼的修改與編譯 697
44.2.4 擴展模組的調用 699
44.3 一個擴展套用實例的開發——簡單加密解密函式 700
44.3.1 加密函式的編寫 700
44.3.2 解密函式的編寫 701
44.3.3 測試代碼的編寫 701
44.4 小結 702

相關詞條

熱門詞條

聯絡我們