本文目錄一覽:
- 1、求php+MYSQL入門到精通的視頻教程,教材也可以!急急急!
- 2、超詳細MySQL數據庫優化
- 3、數據庫(mysql)關鍵知識
- 4、扛得住的MySQL數據庫架構
- 5、MySQL必知必會 第7-9章
- 6、php和mysql web開發的目錄
求php+MYSQL入門到精通的視頻教程,教材也可以!急急急!
電騾上的資源:
課程介紹:
1. 從觀念的引述、程序代碼解析到範例的延伸應用,給您最完整的學習流程。
2. 實務網站範例,所有技術整合運用,實作技巧一覽無遺。
3.在PHP的程序設計中,以高階的程序設計,配上靈活的圖解,增加您程序設計的功力,也能夠了解其演算的過程。
4.MySQL數據庫設計方面,使用數據庫的正規化的方法解決了數據表的分割,來建立關係型數據庫,使您有系統的處理現實生活的程序設計。
5. 深入對象導向程序設計,全新視界與技巧,網頁開發更得心應手。
6.課程中提供範例教您設計實用的PHPMySQL數據庫,包含加入會員與密碼驗證、聊天室、留言版、討論區…等。
7.本課程提供一個網上購物系統實例,根據本實例讓你更多的了解PHPMYSQL在商業網站設計中所提供的強大功能,以及如何才能設計出此類站點。
8.在實戰方面,演示了目前功能最強大的ORACLE 9i for linux最新版9.2.0.4在Linux下的安裝及PHP與Oracle數據庫之間的連接。
9.在熱點研究篇裏面,列舉了目前最熱門的PHP技術,讓你在學習的同時掌握到目前最新的PHP技術。
老師介紹:
徐文龍 — 系統架構師/系統分析師/高級培訓講師,擁有多年軟件及數據庫開發經驗,擅長面向對象的設計和分析、數據庫建模以及軟件開發方法,精通.NET、J2EE、C++、PHP、Oracle/SQL SERVER/Informix/DB2 數據庫等,對各主流數據庫擁有強大的設計與實現能力,對性能調優有深入的體會和經驗,對OOA、OOD、設計模式、UML有深入的理解。已經獲得 OCP,SCJP,MCDBA,MCSE,MCP,TLCE等證書,主講ORACLE9i、SQL Server、 J2EE、.NET、Linux、DB2, 成功授課案例有深圳市國稅局、深圳市福田公路局、香港國興集團、深圳市郵政局、中國農行深圳分行、深圳市地稅局、招商銀行、平安保險、廣東核電技術中心、蛇口ST碼頭等等。
課程安排 :
I 理論篇
第一章 了解PHP(起源,特性,與ASP/ASP.NET和JAVA比較,PHP環境部署,IDE)
第二章 PHP語法結構
第三章 PHP函數庫
第四章 了解MySQL
第五章 MySQL語言結構
第六章 MySQL數據類型
第七章 MySQL函數
第八章 MySQL數據操縱語言DML
第九章 MySQL數據定義語言DDL
第十章 MySQL用戶實用命令
第十一章 MySQL 事務與鎖定
第十二章 MySQL 全文檢索
第十三章 MySQL 查詢緩存
第十四章 MySQL數據庫管理
SQL Server 2000 Job實現、警報實現、真實應用最佳實踐。
II 實戰篇 ―― 小試牛刀
第十五章 計數器
第十六章 以PHP實現文件上載
第十七章 時鐘
第十八章 日曆
第十九章 地址簿
第二十章 圖像處理
第二十一章 表單處理
第二十二章 發郵件
第二十三章 數據庫操作
第十章:SQL Server 2000的複製體系
第二十四章 Oracle數據庫連接
III實戰篇 ―― 高級應用
第二十五章 留言本
第二十六章 留言本(Oracle)
第二十七章 在線投票系統
第二十八章 論壇
第二十九章 聊天室
第三十章 網上購物系統
第三十一章 新聞系統
超詳細MySQL數據庫優化
數據庫優化一方面是找出系統的瓶頸,提高MySQL數據庫的整體性能,而另一方面需要合理的結構設計和參數調整,以提高用戶的相應速度,同時還要儘可能的節約系統資源,以便讓系統提供更大的負荷.
1. 優化一覽圖
2. 優化
筆者將優化分為了兩大類,軟優化和硬優化,軟優化一般是操作數據庫即可,而硬優化則是操作服務器硬件及參數設置.
2.1 軟優化
2.1.1 查詢語句優化
1.首先我們可以用EXPLAIN或DESCRIBE(簡寫:DESC)命令分析一條查詢語句的執行信息.
2.例:
顯示:
其中會顯示索引和查詢數據讀取數據條數等信息.
2.1.2 優化子查詢
在MySQL中,盡量使用JOIN來代替子查詢.因為子查詢需要嵌套查詢,嵌套查詢時會建立一張臨時表,臨時表的建立和刪除都會有較大的系統開銷,而連接查詢不會創建臨時表,因此效率比嵌套子查詢高.
2.1.3 使用索引
索引是提高數據庫查詢速度最重要的方法之一,關於索引可以參高筆者MySQL數據庫索引一文,介紹比較詳細,此處記錄使用索引的三大注意事項:
2.1.4 分解表
對於字段較多的表,如果某些字段使用頻率較低,此時應當,將其分離出來從而形成新的表,
2.1.5 中間表
對於將大量連接查詢的表可以創建中間表,從而減少在查詢時造成的連接耗時.
2.1.6 增加冗餘字段
類似於創建中間表,增加冗餘也是為了減少連接查詢.
2.1.7 分析表,,檢查表,優化表
分析表主要是分析表中關鍵字的分佈,檢查表主要是檢查表中是否存在錯誤,優化表主要是消除刪除或更新造成的表空間浪費.
1. 分析表: 使用 ANALYZE 關鍵字,如ANALYZE TABLE user;
2. 檢查表: 使用 CHECK關鍵字,如CHECK TABLE user [option]
option 只對MyISAM有效,共五個參數值:
3. 優化表:使用OPTIMIZE關鍵字,如OPTIMIZE [LOCAL|NO_WRITE_TO_BINLOG] TABLE user;
LOCAL|NO_WRITE_TO_BINLOG都是表示不寫入日誌.,優化表只對VARCHAR,BLOB和TEXT有效,通過OPTIMIZE TABLE語句可以消除文件碎片,在執行過程中會加上只讀鎖.
2.2 硬優化
2.2.1 硬件三件套
1.配置多核心和頻率高的cpu,多核心可以執行多個線程.
2.配置大內存,提高內存,即可提高緩存區容量,因此能減少磁盤I/O時間,從而提高響應速度.
3.配置高速磁盤或合理分佈磁盤:高速磁盤提高I/O,分佈磁盤能提高並行操作的能力.
2.2.2 優化數據庫參數
優化數據庫參數可以提高資源利用率,從而提高MySQL服務器性能.MySQL服務的配置參數都在my.cnf或my.ini,下面列出性能影響較大的幾個參數.
2.2.3 分庫分表
因為數據庫壓力過大,首先一個問題就是高峰期系統性能可能會降低,因為數據庫負載過高對性能會有影響。另外一個,壓力過大把你的數據庫給搞掛了怎麼辦?所以此時你必須得對系統做分庫分表 + 讀寫分離,也就是把一個庫拆分為多個庫,部署在多個數據庫服務上,這時作為主庫承載寫入請求。然後每個主庫都掛載至少一個從庫,由從庫來承載讀請求。
2.2.4 緩存集群
如果用戶量越來越大,此時你可以不停的加機器,比如說系統層面不停加機器,就可以承載更高的並發請求。然後數據庫層面如果寫入並發越來越高,就擴容加數據庫服務器,通過分庫分表是可以支持擴容機器的,如果數據庫層面的讀並發越來越高,就擴容加更多的從庫。但是這裡有一個很大的問題:數據庫其實本身不是用來承載高並發請求的,所以通常來說,數據庫單機每秒承載的並發就在幾千的數量級,而且數據庫使用的機器都是比較高配置,比較昂貴的機器,成本很高。如果你就是簡單的不停的加機器,其實是不對的。所以在高並發架構里通常都有緩存這個環節,緩存系統的設計就是為了承載高並發而生。所以單機承載的並發量都在每秒幾萬,甚至每秒數十萬,對高並發的承載能力比數據庫系統要高出一到兩個數量級。所以你完全可以根據系統的業務特性,對那種寫少讀多的請求,引入緩存集群。具體來說,就是在寫數據庫的時候同時寫一份數據到緩存集群里,然後用緩存集群來承載大部分的讀請求。這樣的話,通過緩存集群,就可以用更少的機器資源承載更高的並發。
一個完整而複雜的高並發系統架構中,一定會包含:各種複雜的自研基礎架構系統。各種精妙的架構設計.因此一篇小文頂多具有拋磚引玉的效果,但是數據庫優化的思想差不多就這些了.
數據庫(mysql)關鍵知識
Mysql是目前互聯網使用最廣的關係數據庫,關係數據庫的本質是將問題分解為多個分類然後通過關係來查詢。 一個經典的問題是用戶借書,三張表,一個用戶,一個書,一個借書的關係表。當需要查詢某個用戶借書情況或者是書被那些人借了,就用關係查詢來實現。
關係數據庫範式
來自英文Normal form,簡稱NF。要想設計—個好的關係,必須使關係滿足一定的約束條件,滿足這些規範的數據庫是簡潔的、結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。總共有六種範式:第一範式(1NF)、第二範式(2NF)、 第三範式 (3NF)、巴斯-科德範式(BCNF)、 第四範式 (4NF)和 第五範式 (5NF,又稱完美範式)。
1NF是指數據庫表的每一列都是不可分割的原子數據項。2NF必須滿足1NF,要求數據庫表中的每行記錄必須可以被唯一地區分。3NF在2NF基礎上,任何非主 屬性 不依賴於其它非主屬性(在2NF基礎上消除傳遞依賴)。BCNF是在3NF基礎上,任何非主屬性不能對主鍵子集依賴(在3NF基礎上消除對主碼子集的依賴), 滿足BCNF不再會有任何由於函數依賴導致的異常,但是我們還可能會遇到由於多值依賴導致的異常。4NF的定義很簡單:已經是BC範式,並且不包含多值依賴關係。5NF處理的是無損連接問題,這個範式基本沒有實際意義,因為無損連接很少出現,而且難以察覺。而域鍵範式試圖定義一個終極範式,該範式考慮所有的依賴和約束類型,但是實用價值也是最小的,只存在理論研究中。
Catalog和Schema
是數據庫對象命名空間中的層次,主要用來解決命名衝突的問題。從概念上說,一個數據庫系統包含多個Catalog,每個Catalog又包含多個Schema,而每個Schema又包含多個數據庫對象(表、視圖、字段等)。但是Mysql的數據庫名就是Schema,不支持Catalog。
Mysql的數據庫引擎主要有兩種MyISAM和InnoDB,MyISAM支持全文檢索,InnoDB支持事務。
SQL中的通配符『%』代表任意字符出現任意次數。『_』代表任意字符出現一次。SQL與正則表達式結合查詢一般用在WHERE table_name REGEXP ‘^12.34’。子查詢是從裡到外執行。
數據庫聯結(join)涉及到外鍵,外鍵是指一個表的列是另一個表的主鍵,那麼它就是外鍵。笛卡爾積聯結(不指定聯結條件時)生成的記錄條目是單純的第一個表的行乘以第二個表的列數。用得最多的是等值聯結也叫內部聯結。
高級聯結還有自連接,是指查詢中的兩張表是同一張表,它通常作為外部語句用來代替從相同表中檢索數據時使用的子查詢。自然聯結使每個列只返回一次。外部聯結是指聯結包含了那些在相關表中沒有關聯行的行。例如列出所有產品及其訂購數量,包括沒有人訂購的產品。LEFT OUTER JOIN指選擇左邊表的所有行。
組合查詢是指採用UNION等將兩個查詢結果取並集。
視圖是查看存儲在別處的數據的一種工具,它本身並不包含數據,因此表的數據修改了,視圖返回的數據也將隨之修改,因此如果使用了複雜或嵌套視圖會對性能有較大的影響。視圖的作用之一是隱藏複雜的SQL通常會涉及到聯結查詢。
存儲過程類似於批處理,包含了一條或多條SQL語句。語法:
CREATE PROCEDURE name()
BEGIN
SQL
END
————————-
CALL name()//來調用存儲過程
游標有DECLARE定義,游標與存儲過程是綁定的,存儲過程處理完成,游標就會消失。游標被打開後可以使用FETCH語句訪問每一行。
觸發器是在某個時間發生時自動執行某條SQL語句。語法:
CREATE TRIGGER name AFTER INSERT ON talbe_name FOR EACH ROW
事務處理可以維護數據庫的完整性,保證批量的操作要麼完全執行,要麼完全不執行。包括事務、回退、提交、保留點幾個關鍵術語。ROLLBACK只能在一個事務處理內使用。他不能回退CREATE和DROP操作。使用COMMIT保證事務提交。複雜的事務處理需要部分提交或回退,因此我們需要使用保留點SAVEPOINT。可以使用ROLLBACK TO savepoint_name。保留點越多越好。保留點在事務執行完成後自動釋放。
扛得住的MySQL數據庫架構
數據庫優化是系統工程,性能的提升靠整體。本課程將面面俱到的講解提升數據庫性能的各種因素,讓你在最短的時間從小白到資深,將數據庫整體架構瞭然於胸
第1章 實例和故事 試看7 節 | 50分鐘
決定電商11大促成敗的各個關鍵因素。
收起列表
視頻:1-1 什麼決定了電商雙11大促的成敗 (04:04)試看
視頻:1-2 在雙11大促中的數據庫服務器 (06:03)
視頻:1-3 在大促中什麼影響了數據庫性能 (07:55)
視頻:1-4 大錶帶來的問題 (14:13)
視頻:1-5 大事務帶來的問題 (17:27)
作業:1-6 【討論題】在日常工作中如何應對高並發大數據量對數據庫性能挑戰
作業:1-7 【討論題】在MySQL中事務的作用是什麼?
第2章 什麼影響了MySQL性能 試看30 節 | 210分鐘
詳細介紹影響性能各個因素,包括硬件、操作系統等等。
收起列表
視頻:2-1 影響性能的幾個方面 (04:08)試看
視頻:2-2 CPU資源和可用內存大小 (10:54)
視頻:2-3 磁盤的配置和選擇 (04:44)
視頻:2-4 使用RAID增加傳統機器硬盤的性能 (11:30)
視頻:2-5 使用固態存儲SSD或PCIe卡 (08:35)
視頻:2-6 使用網絡存儲SAN和NAS (07:16)
視頻:2-7 總結:服務器硬件對性能的影響 (03:27)
視頻:2-8 操作系統對性能的影響-MySQL適合的操作系統 (03:50)
視頻:2-9 CentOS系統參數優化 (11:43)
視頻:2-10 文件系統對性能的影響 (03:29)
視頻:2-11 MySQL體系結構 (05:29)
視頻:2-12 MySQL常用存儲引擎之MyISAM (13:23)
視頻:2-13 MySQL常用存儲引擎之Innodb (10:44)
視頻:2-14 Innodb存儲引擎的特性(1) (15:24)
視頻:2-15 Innodb存儲引擎的特性(2) (08:44)
視頻:2-16 MySQL常用存儲引擎之CSV (09:19)
視頻:2-17 MySQL常用存儲引擎之Archive (06:08)
視頻:2-18 MySQL常用存儲引擎之Memory (10:40)
視頻:2-19 MySQL常用存儲引擎之Federated (11:21)
視頻:2-20 如何選擇存儲引擎 (04:33)
視頻:2-21 MySQL服務器參數介紹 (08:04)
視頻:2-22 內存配置相關參數 (09:24)
視頻:2-23 IO相關配置參數 (10:01)
視頻:2-24 安全相關配置參數 (06:13)
視頻:2-25 其它常用配置參數 (03:41)
視頻:2-26 數據庫設計對性能的影響 (04:36)
視頻:2-27 總結 (01:32)
作業:2-28 【討論題】你會如何配置公司的數據庫服務器硬件?
作業:2-29 【討論題】你認為對數據庫性能影響最大的因素是什麼
作業:2-30 【討論題】做為電商的DBA,建議開發選哪種MySQL存儲引擎
第3章 MySQL基準測試8 節 | 65分鐘
了解基準測試,MySQL基準測試工具介紹及實例演示。
收起列表
視頻:3-1 什麼是基準測試 (02:20)
視頻:3-2 如何進行基準測試 (09:00)
視頻:3-3 基準測試演示實例 (11:18)
視頻:3-4 Mysql基準測試工具之mysqlslap (13:30)
視頻:3-5 Mysql基準測試工具之sysbench (11:07)
視頻:3-6 sysbench基準測試演示實例 (17:11)
作業:3-7 【討論題】MySQL基準測試是否可以體現出業務系統的真實性能
作業:3-8 【實操題】參數不同取值對性能的影響
第4章 MySQL數據庫結構優化14 節 | 85分鐘
詳細介紹數據庫結構設計、範式和反範式設計、物理設計等等。
收起列表
視頻:4-1 數據庫結構優化介紹 (06:52)
視頻:4-2 數據庫結構設計 (14:49)
視頻:4-3 需求分析及邏輯設計 (11:00)
視頻:4-4 需求分析及邏輯設計-反範式化設計 (06:44)
視頻:4-5 範式化設計和反範式化設計優缺點 (04:06)
視頻:4-6 物理設計介紹 (05:17)
視頻:4-7 物理設計-數據類型的選擇 (18:59)
視頻:4-8 物理設計-如何存儲日期類型 (13:37)
視頻:4-9 物理設計-總結 (02:37)
圖文:4-10 說明MyISAM和Innodb存儲引擎的5點不同
作業:4-11 【討論題】判斷表結構是否符合第三範式要求?如不滿足要如何修改
作業:4-12 【實操題】請設計一個電商訂單系統的數據庫結構
作業:4-13 【討論題】以下那個字段適合作為Innodb表的主建使用
作業:4-14 【討論題】請為下表中的字段選擇合適的數據類型
第5章 MySQL高可用架構設計 試看24 節 | 249分鐘
詳細介紹二進制日誌及其對複製的影響、GTID的複製、MMM、MHA等等。
收起列表
視頻:5-1 mysql複製功能介紹 (04:58)
視頻:5-2 mysql二進制日誌 (22:05)
視頻:5-3 mysql二進制日誌格式對複製的影響 (09:37)
視頻:5-4 mysql複製工作方式 (03:08)
視頻:5-5 基於日誌點的複製 (20:06)
視頻:5-6 基於GTID的複製 (22:32)
視頻:5-7 MySQL複製拓撲 (13:58)
視頻:5-8 MySQL複製性能優化 (09:23)
視頻:5-9 MySQL複製常見問題處理 (08:31)
視頻:5-10 什麼是高可用架構 (14:09)
視頻:5-11 MMM架構介紹 (08:09)
視頻:5-12 MMM架構實例演示(上) (09:16)試看
視頻:5-13 MMM架構實例演示(下) (18:55)
視頻:5-14 MMM架構的優缺點 (08:01)
視頻:5-15 MHA架構介紹 (10:02)
視頻:5-16 MHA架構實例演示(1) (13:11)
視頻:5-17 MHA架構實例演示(2) (16:54)
視頻:5-18 MHA架構優缺點 (05:14)
視頻:5-19 讀寫分離和負載均衡介紹 (11:42)
視頻:5-20 MaxScale實例演示 (18:25)
作業:5-21 【討論題】MySQL主從複製為什麼會有延遲,延遲又是如何產生
作業:5-22 【實操題】請為某互聯網項目設計99.99%MySQL架構
作業:5-23 【討論題】如何給一個已經存在的主從複製集群新增一個從節點
作業:5-24 【討論題】給你三台數據庫服務器,你如何設計它的高可用架構
第6章 數據庫索引優化8 節 | 65分鐘
介紹BTree索引和Hash索引,詳細介紹索引的優化策略等等。
收起列表
視頻:6-1 Btree索引和Hash索引 (20:09)
視頻:6-2 安裝演示數據庫 (01:19)
視頻:6-3 索引優化策略(上) (17:33)
視頻:6-4 索引優化策略(中) (13:02)
視頻:6-5 索引優化策略(下) (12:30)
作業:6-6 【討論題】一列上建立了索引,查詢時就一定會用到這個索引嗎
作業:6-7 【討論題】在定義聯合索引時為什麼需要注意聯合索引中的順序
作業:6-8 【實操題】SQL建立索引,你會考慮那些因素
第7章 SQL查詢優化9 節 | 62分鐘
詳細介紹慢查詢日誌及示例演示,MySQL查詢優化器介紹及特定SQL的查詢優化等。
收起列表
視頻:7-1 獲取有性能問題SQL的三種方法 (05:14)
視頻:7-2 慢查詢日誌介紹 (08:57)
視頻:7-3 慢查詢日誌實例 (08:27)
視頻:7-4 實時獲取性能問題SQL (02:21)
視頻:7-5 SQL的解析預處理及生成執行計劃 (16:02)
視頻:7-6 如何確定查詢處理各個階段所消耗的時間 (09:35)
視頻:7-7 特定SQL的查詢優化 (10:34)
作業:7-8 【討論題】如何跟據需要對一個大表中的數據進行刪除或更新
作業:7-9 【討論題】如何獲取需要優化的SQL查詢
第8章 數據庫的分庫分表5 節 | 48分鐘
詳細介紹數據庫分庫分表的實現原理及演示案例等。
收起列表
視頻:8-1 數據庫分庫分表的幾種方式 (04:34)
視頻:8-2 數據庫分片前的準備 (13:53)
視頻:8-3 數據庫分片演示(上) (11:40)
視頻:8-4 數據庫分片演示(下) (17:02)
作業:8-5 【討論題】對於大表來說我們一定要進行分庫分表嗎
第9章 數據庫監控7 節 | 29分鐘
介紹數據庫可用性監控、性能監控、MySQL主從複製監控等
收起列表
視頻:9-1 數據庫監控介紹 (04:46)
視頻:9-2 數據庫可用性監控 (07:20)
視頻:9-3 數據庫性能監控 (09:39)
視頻:9-4 MySQL主從複製監控 (06:16)
作業:9-5 【討論題】QPS是否可以真實的反映出數據庫的負載情況
作業:9-6 【討論題】如何正確評估數據庫的當前負載狀況
作業:9-7 【實操題】開發一個簡單監控腳本,監控mySQL數據庫阻塞情況
MySQL必知必會 第7-9章
在第六章介紹的所有 WHERE 子句在過濾時,使用的都是單一的條件。為了進行更強的過濾控制,MySQL允許給出多個WHERE子句,並通過 AND 或 OR 操作符的方式組合使用。
AND 操作符可以使用對多列的條件進行累加過濾。
OR操作符可以使用對多列的條件進行累加過濾。
WHERE 子句可包含任意數目的 AND 和 OR 操作符。但是 AND 的優先級比 OR 高,應使用適當的圓括號分組操作符。
注意: 任何時候都不應該過分依賴默認計算次序,使用圓括號可以增加可讀性,消除歧義。
IN 操作符用來指定條件範圍,範圍中每個條件都可以進行匹配。 IN 的合法值由逗號分隔,並全部括在圓括號中。
使用 IN 的優點為:
WHERE子句中的NOT操作符有且只有一個功能,就是否定它之後的任何條件。
注意: MySQL支持使用NOT對IN、BETWEEN和EXISTS子句取反,這與其他大多數DBMS允許使用NOT對各種條件取反有很大區別。
之前介紹的都是針對已知值的過濾。而對進行未知內容的匹配,可以使用通配符創建比較數據的搜索模式來完成。通配符的匹配,需要通過LIKE操作符指示MySQL完成。
% 表示任何字符出現任意次。例如,為了找到所有以 jet 起頭的產品,可使用以下 SELECT 語句
注意:
下劃線( _ )通配符只匹配單個字符而不是多個字符。
通配符使用技巧:
正則表達式是用來匹配文本的特殊串(字符集合),所有種類的程序設計語言、文本編輯器、操作系統等都支持正則表達式。
MySQL中的正則表達式僅是正則表達式的一個子集。
為搜索兩個串之一,使用( | )。
如果想匹配特定的單一字符,可以使用[]將一組指定的內容括起來。
注意:
集合可用來定義要匹配一個或多個字符,此時可以使用 – 來定義一個範圍,例如 [0-9] 表示數字0到9, [a-z] 表示字母a到z。
正則表達式語句由具有特定含義的特殊字符構成。例如 | 或 – 等。如果要表示一些特殊的字母,如含 . 的值,則應該使用 \\\ 為前導。 \\\- 表示查找 – , \\\. 表示查找 . 。
注意:
為方便常見字符集的查找,可以使用預定義的字符集。稱為字符類。如下圖所示:
目前為止使用的所有正則表達式都試圖匹配單詞出現。但有時需要對匹配的數目進行更強的控制,此時可以使用下列正則表達式重複元字符來完成。
注意: 使用正則表達式時,編寫某個特定的表達式幾乎總是有多種方法。
目前為止,所有例子都是匹配一個串中任意位置的文本,為了匹配特定位置的文本,需要使用定位符。
注意:
php和mysql web開發的目錄
讀者反饋
譯者序
前言
作者簡介
第一篇使用PHP
第1章PHP快速入門教程1
1.1開始之前:了解PHP
1.2創建一個示例應用:Bob汽車零部件商店2
1.2.1創建訂單表單2
1.2.2表單處理4
1.3在HTML中嵌入PHP4
1.3.1使用PHP標記5
1.3.2PHP語句6
1.3.3空格6
1.3.4注釋7
1.4添加動態內容8
1.4.1調用函數8
1.4.2使用date()函數9
1.5訪問表單變量9
1.5.1簡短、中等以及長風格的表單變量9
1.5.2字符串的連接11
1.5.3變量和文本12
1.6理解標識符13
1.7檢查變量類型13
1.7.1PHP的數據類型
1.7.2類型強度
1.7.3類型轉換
1.7.4可變變量
1.8聲明和使用常量13
1.9理解變量的作用域13
1.10使用操作符16
1.10.1算術操作符17
1.10.2字符串操作符17
1.10.3賦值操作符17
1.10.4比較操作符19
1.10.5邏輯操作符20
1.10.6位操作符21
1.10.7其他操作符21
1.11計算表單總金額23
1.12理解操作符的優先級和結合性:
1.13使用可變函數25
1.13.1測試和設置變量類型26
1.13.2測試變量狀態26
1.13.3變量的重解釋27
1.14根據條件進行決策27
1.14.1if語句28
1.14.2代碼塊28
1.14.3else語句28
1.14.4elseif語句29
1.14.5switch語句30
1.14.6比較不同的條件31
1.15通過迭代實現重複動作32
1.15.1while循環33
1.15.2for和foreach循環34
1.15.3do…while循環35
1.16從控制結構或腳本中跳出35
1.17使用可替換的控制結構語法36
1.18使用declare36
1.19下一章37
第2章數據的存儲與檢索38
2.1保存數據以便後期使用38
2.2存儲和檢索Bob的訂單38
2.3文件處理39
2.4打開文件40
2.4.1選擇文件模式40
2.4.2使用fopen()打開文件40
2.4.3通過FTP或HTTP打開文件42
2.4.4解決打開文件時可能遇到的問題42
2.5寫文件44
2.5.1fwrite()的參數44
2.5.2文件格式45
2.6關閉文件45
2.7讀文件47
2.7.1以只讀模式打開文件:fopen()48
2.7.2知道何時讀完文件:feof()48
2.7.3每次讀取一行數據:fgets()、fgetss()和fgetcsv()49
2.7.4讀取整個文件:readfile()、fpassthru()和file()49
2.7.5讀取一個字符:fgetc()50
2.7.6讀取任意長度:fread()51
2.8使用其他有用的文件函數51
2.8.1查看文件是否存在:file_exists()51
2.8.2確定文件大小:filesize()51
2.8.3刪除一個文件:unlink()51
2.8.4在文件中定位:rewind()、fseek()和ftell()52
2.9文件鎖定52
2.10更好的方式:數據庫管理系統53
2.10.1使用普通文件的幾個問題54
2.10.2RDBMS是如何解決這些問題的54
2.11進一步學習54
2.12下一章55
第3章使用數組56
3.1什麼是數組56
3.2數字索引數組57
3.2.1數字索引數組的初始化57
3.2.2訪問數組的內容57
3.2.3使用循環訪問數組58
3.3使用不同索引的數組59
3.3.1初始化相關數組59
3.3.2訪問數組元素59
3.3.3使用循環語句59
3.4數組操作符60
3.5多維數組61
3.6數組排序64
3.6.1使用sort()函數64
3.6.2使用asort()函數和ksort()函數對相關數組排序64
3.6.3反向排序65
3.7多維數組的排序65
3.7.1用戶定義排序65
3.7.2反向用戶排序66
3.8對數組進行重新排序67
3.8.1使用shuffle()函數67
3.8.2使用array_reverse()函數68
3.9從文件載入數組69
3.10執行其他的數組操作71
3.10.1在數組中瀏覽:each()、current()、reset()、end()、next()、pos()和prev()71
3.10.2對數組的每一個元素應用任何函數:array_walk()72
3.10.3統計數組元素個數:count()、sizeof()和array_count_values()73
3.10.4將數組轉換成標量變量:extract()73
3.11進一步學習75
3.12下一章75
第4章字符串操作與正則表達式76
4.1創建一個示例應用程序:智能表單郵件76
4.2字符串的格式化78
4.2.1字符串的整理:chop()、ltrim()和trim()78
4.2.2格式化字符串以便顯示78
4.2.3格式化字符串以便存儲:addslashes()和stripslashes()81
4.3用字符串函數連接和分割字符串82
4.3.1使用函數explode()、implode()和join()82
4.3.2使用strtok()函數83
4.3.3使用substr()函數83
4.4字符串的比較84
4.4.1字符串的排序:strcmp()、strcasecmp()和strnatcmp()84
4.4.2使用strlen()函數測試字符串的長度85
4.5使用字符串函數匹配和替換子字符串85
4.5.1在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr()85
4.5.2查找子字符串的位置:strpos()、strrpos()86
4.5.3替換子字符串:str_replace()、substr_replace()87
4.6正則表達式的介紹88
4.6.1基礎知識88
4.6.2字符集和類88
4.6.3重複89
4.6.4子表達式89
4.6.5子表達式計數90
4.6.6定位到字符串的開始或末尾90
4.6.7分支90
4.6.8匹配特殊字符90
4.6.9特殊字符一覽91
4.6.10在智能表單中應用91
4.7用正則表達式查找子字符串92
4.8使用正則表達式分割字符串93
4.9比較字符串函數和正則表達式函數93
4.10進一步學習93
4.11下一章93
第5章代碼重用與函數編寫94
5.1代碼重用的好處
5.1.1成本94
5.1.2可靠性94
5.1.3一致性95
5.2使用require()和include()函數95
5.2.1文件擴展名和require()語句96
5.2.2使用require()製作Web站點的模版96
5.2.3使用auto_prepend_file和auto_append_file101
5.3在PHP中使用函數101
5.3.1調用函數101
5.3.2調用未定義的函數103
5.3.3理解字母大小寫和函數名稱103
5.4理解為什麼要定義自己的函數103
5.5了解基本的函數結構104
5.5.1函數命名
5.6使用參數105
5.7理解作用域107
5.8參數的引用傳遞和值傳遞109
5.9使用Return關鍵字110
5.9.1從函數返回一個值111
5.10實現遞歸113
5.10.1名稱空間
5.11進一步學習114
5.12下一章114
第6章面向對象的PHP115
6.1理解面向對象的概念115
6.1.1類和對象115
6.1.2多態性116
6.1.3繼承117
6.2在PHP中創建類、屬性和操作117
6.2.1類的結構117
6.2.2構造函數118
6.2.3析構函數118
6.3類的實例化118
6.4使用類的屬性119
6.5使用private和public關鍵字控制訪問121
6.6類操作的調用121
6.7在PHP中實現繼承122
6.7.1通過繼承使用private和protected訪問修飾符控制可見性123
6.7.2重載124
6.7.3使用final關鍵字禁止繼承和重載125
6.7.4理解多重繼承126
6.7.5實現接口126
6.8類的設計127
6.9編寫類代碼128
6.10理解PHP面向對象新的高級功能135
6.10.1使用Per-Class常量135
6.10.2實現靜態方法135
6.10.3檢查類的類型和類型提示136
6.10.4克隆對象136
6.10.5使用抽象類137
6.10.6使用__call()重載方法137
6.10.7使用__autoload()方法138
6.10.8實現迭代器和迭代138
6.10.9將類轉換成字符串140
6.10.10使用Reflection(反射)API140
6.11下一章141
第7章錯誤和異常處理142
7.1異常處理的概念142
7.2Exception類144
7.3用戶自定義異常144
7.4Bob的汽車零部件商店應用程序的異常146
7.5異常和PHP的其他錯誤處理機制150
7.6進一步學習150
7.7下一章150
第二篇使用MySQL
第8章設計Web數據庫151
8.1關係數據庫的概念152
8.1.1表格152
8.1.2列152
8.1.3行152
8.1.4值152
8.1.5鍵152
8.1.6模式153
8.1.7關係153
8.2如何設計Web數據庫154
8.2.1考慮要建模的實際對象154
8.2.2避免保存冗餘數據154
8.2.3使用原子列值155
8.2.4選擇有意義的鍵156
8.2.5考慮需要詢問數據庫的問題156
8.2.6避免多個空屬性的設計156
8.2.7表格類型的總結157
8.3Web數據庫架構157
8.4進一步學習158
8.5下一章158
第9章創建Web數據庫159
9.1使用MySQL監視程序160
9.2登錄到MySQL160
9.3創建數據庫和用戶161
9.4設置用戶與權限162
9.5MySQL權限系統的介紹162
9.5.1最少權限原則162
9.5.2創建用戶:GRANT命令162
9.5.3權限的類型和級別163
9.5.4REVOKE命令165
9.5.5使用GRANT和REVOKE的例子165
9.6創建一個Web用戶166
9.7使用正確的數據庫166
9.8創建數據庫表167
9.8.1理解其他關鍵字的意思168
9.8.2理解列的類型169
9.8.3用SHOW和DESCRIBE來查看數據庫170
9.8.4創建索引171
9.9理解MySQL的標識符171
9.10選擇列數據類型172
9.10.1數字類型173
9.10.2日期和時間類型174
9.10.3字符串類型174
9.11進一步學習176
9.12下一章176
第10章使用MySQL數據庫177
10.1SQL是什麼177
10.2在數據庫中插入數據177
10.3從數據庫中獲取數據179
10.3.1獲取滿足特定條件的數據181
10.3.2從多個表中獲取數據182
10.3.3以特定的順序獲取數據186
10.3.4分組與合計數據186
10.3.5選擇要返回的行188
10.3.6使用子查詢188
10.4更新數據庫記錄190
10.5創建後修改表191
10.6刪除數據庫中的記錄193
10.7表的刪除193
10.8刪除整個數據庫193
10.9進一步學習194
10.10下一章194
第11章使用PHP從Web訪問MySQL數據庫195
11.1Web數據庫架構的工作原理195
11.2從Web查詢數據庫的基本步驟198
11.2.1檢查與過濾用戶輸入數據198
11.2.2建立一個連接199
11.2.3選擇使用的數據庫200
11.2.4查詢數據庫200
11.2.5檢索查詢結果201
11.2.6從數據庫斷開連接202
11.3將新信息放入數據庫202
11.4使用Prepared語句205
11.5使用PHP與數據庫交互的其他接口206
11.5.1使用常規的數據庫接口:PEARMDB2206
11.6進一步學習209
11.7下一章209
第12章MySQL高級管理210
12.1深入理解權限系統210
12.1.1user表211
12.1.2db表和host表212
12.1.3tables_priv表,columns_priv表和procs_priv表212
12.1.4訪問控制:MySQL如何使用Grant表213
12.1.5更新權限:修改什麼時候生效213
12.2提高MySQL數據庫的安全性214
12.2.1從操作系統角度來保護MySQL214
12.2.2密碼214
12.2.3用戶權限215
12.2.4Web問題215
12.3獲取更多關於數據庫的信息216
12.3.1使用SHOW獲取信息216
12.3.2使用DESCRIBE獲取關於列的信息218
12.3.3用EXPLAIN理解查詢操作的工作過程218
12.4數據庫的優化221
12.4.1設計優化222
12.4.2權限222
12.4.3表的優化222
12.4.4使用索引222
12.4.5使用默認值222
12.4.6其他技巧222
12.5備份MySQL數據庫222
12.6恢復MySQL數據庫223
12.7實現複製223
12.7.1設置主服務器224
12.7.2執行初始的數據傳輸224
12.7.3設置一個/多個從服務器225
12.8進一步學習225
12.9下一章225
第13章MySQL高級編程226
13.1LOADDATAINFILE語句226
13.2存儲引擎226
13.3事務227
13.3.1理解事務的定義227
13.3.2通過InnoDB使用事務228
13.4外鍵229
13.5存儲過程230
13.5.1基本示例230
13.5.2局部變量232
13.5.3游標和控制結構233
13.6進一步學習236
13.7下一章236
第三篇電子商務與安全性
第14章運營一個電子商務網站237
14.1我們要實現什麼目標237
14.2考慮電子商務網站的類型237
14.2.1使用在線說明書公布信息238
14.2.2接收產品或服務的訂單240
14.2.3提供服務和數字產品243
14.2.4為產品或服務增值243
14.2.5減少成本243
14.3理解風險和威脅244
14.3.1網絡黑客244
14.3.2不能招攬足夠的生意245
14.3.3計算機硬件故障245
14.3.4電力、通信、網絡或運輸故障245
14.3.5廣泛的競爭245
14.3.6軟件錯誤245
14.3.7不斷變化的政府政策和稅收246
14.3.8系統容量限制246
14.4選擇一個策略246
14.5下一章246
第15章電子商務的安全問題247
15.1信息的重要程度247
15.2安全威脅248
15.2.1機密數據的泄露248
15.2.2數據丟失和數據破壞249
15.2.3數據修改250
15.2.4拒絕服務251
15.2.5軟件錯誤251
15.2.6否認252
15.3易用性,性能、成本和安全性253
15.4建立一個安全政策253
15.5身份驗證原則254
15.6加密技術基礎255
15.6.1私有密鑰加密256
15.6.2公有密鑰加密256
15.6.3數字簽名256
15.7數字證書257
15.8安全的Web服務器258
15.9審計與日誌記錄259
15.10防火牆259
15.11備份數據259
15.11.1備份常規文件260
15.11.2備份與恢復MySQL數據庫260
15.12自然環境安全260
15.13下一章261
第16章Web應用的安全
16.1處理安全性問題的策略
16.1.1以正確心態為開始
16.1.2安全性和可用性之間的平衡
16.1.3安全監視
16.1.4基本方法
16.2識別所面臨的威脅
16.2.1訪問或修改敏感數據
16.2.2數據丟失或破壞
16.2.3拒絕服務
16.2.4惡意代碼注入
16.2.5服務器被攻破
16.3了解與我們「打交道」的用戶
16.3.1破解人員
16.3.2受影響機器的未知情用戶
16.3.3對公司不滿的員工
16.3.4硬件被盜
16.3.5我們自身
16.4代碼的安全性
16.4.1過濾用戶輸入
16.4.2轉義輸出
16.4.3代碼組織
16.4.4代碼自身的問題
16.4.5文件系統因素
16.4.6代碼穩定性和缺陷
16.4.7執行引號和exec
16.5Web服務器和PHP的安全性
16.5.1保持軟件的更新
16.5.2查看php.ini文件
16.5.3Web服務器配置
16.5.4Web應用的商業主機服務
16.6數據庫服務器的安全性
16.6.1用戶和權限系統
16.6.2發送數據至服務器
16.6.3連接服務器
16.6.4運行服務器
16.7保護網絡
16.7.1安裝防火牆
16.7.2使用隔離區域(DMZ)
16.7.3應對DoS和DDoS攻擊
16.8計算機和操作系統的安全性
16.8.1保持操作系統的更新
16.8.2隻運行必須的軟件
16.8.3服務器的物理安全性
16.9災難計劃
16.10下一章
第17章使用PHP和MySQL實現身份驗證262
17.1識別訪問者262
17.2實現訪問控制263
17.2.1保存密碼265
17.2.2密碼的加密267
17.2.3保護多個網頁268
17.3使用基本身份驗證269
17.4在PHP中使用基本身份驗證270
17.5在Apache的.htaccess文件中使用基本身份驗證271
17.6使用mod_auth_mysql身份驗證276
17.6.1安裝mod_auth_mysql276
17.6.2使用mod_auth_mysql277
17.7創建自定義身份驗證277
17.8進一步學習278
17.9下一章278
第18章使用PHP和MySQL實現安全事務279
18.1提供安全的事務處理279
18.1.1用戶機器280
18.1.2Internet281
18.1.3我們的系統281
18.2使用加密套接字層(SSL)282
18.3屏蔽用戶的輸入284
18.4提供安全存儲284
18.5存儲信用卡號碼285
18.6在PHP中使用加密技術286
18.6.1安裝GPG286
18.6.2測試GPG288
18.7進一步學習293
18.8下一章293
第四篇PHP的高級技術
第19章與文件系統和服務器的交互295
19.1文件上載295
19.1.1文件上載的HTML代碼296
19.1.2編寫處理文件的PHP297
19.1.3避免常見上載問題300
19.2使用目錄函數300
19.2.1從目錄讀取300
19.2.2獲得當前目錄的信息302
19.2.3創建和刪除目錄302
19.3與文件系統的交互302
19.3.1獲取文件信息302
19.3.2更改文件屬性304
19.3.3創建、刪除和移動文件305
19.4使用程序執行函數305
19.5與環境變量交互:getenv()和putenv()308
19.6進一步學習308
19.7下一章308
第20章使用網絡函數和協議函數309
20.1了解可供使用的協議309
20.2發送和讀取電子郵件309
20.3使用其他Web站點的數據310
20.4使用網絡查找函數312
20.5備份或鏡像一個文件
20.5.1使用FTP備份或鏡像一個文件316
20.5.2上傳文件321
20.5.3避免超時321
20.5.4使用其他的FTP函數322
20.6進一步學習322
20.7下一章323
第21章日期和時間的管理324
21.1在PHP中獲取日期和時間324
21.1.1使用date()函數324
21.1.2使用UNIX時間戳325
21.1.3使用getdate()函數326
21.1.4使用checkdate()函數檢驗日期有效性327
21.1.5格式化時間戳
21.2在PHP日期格式和MySQL日期格式之間進行轉換327
21.3在PHP中計算日期329
21.4在MySQL中計算日期329
21.5使用微秒331
21.6使用日曆函數331
21.7進一步學習332
21.8下一章332
第22章創建圖像333
22.1在PHP中設置圖像支持333
22.2理解圖像格式334
22.2.1JPEG334
22.2.2PNG334
22.2.3WBMP335
22.2.4GIF335
22.3創建圖像335
22.3.1創建一個背景圖像336
22.3.2在圖像上繪圖或打印文本337
22.3.3輸出最終圖形338
22.3.4清理339
22.4在其他頁面中使用自動生成的圖像339
22.5使用文本和字體創建圖像339
22.5.1創建基本畫布342
22.5.2將文本調整到適合按鈕342
22.5.3放置文本345
22.5.4將文本寫到按鈕上345
22.5.5完成345
22.6繪製圖像與用圖表描繪數據346
22.7使用其他的圖像函數352
22.8進一步學習352
22.9下一章353
第23章在PHP中使用會話控制354
23.1什麼是會話控制354
23.2理解基本的會話功能354
23.2.1什麼是cookie354
23.2.2通過PHP設置cookie355
23.2.3在會話中使用cookie355
23.2.4存儲會話ID356
23.3實現簡單的會話356
23.3.1開始一個會話356
23.3.2註冊一個會話變量356
23.3.3使用會話變量357
23.3.4註銷變量與銷毀會話357
23.4創建一個簡單的會話例子357
23.5配置會話控制359
23.6通過會話控制實現身份驗證360
23.7進一步學習365
23.8下一章365
第24章其他有用的特性366
24.1使用eval()函數對字符串求值367
24.2終止執行:die和exit367
24.3序列化變量和對象368
24.4獲取PHP環境信息369
24.4.1找到所加載的PHP擴展部件369
24.4.2識別腳本所有者370
24.4.3確定腳本最近修改時間370
24.5暫時改變運行時環境370
24.6源代碼加亮371
24.7在命令行中使用PHP372
24.8下一章372
第五篇創建實用的PHP和MySQL項目
第25章在大型項目中使用PHP和MySQL373
25.1在Web開發中應用軟件工程374
25.2規劃和運行Web應用程序項目374
25.3重用代碼375
25.4編寫可維護代碼375
25.4.1編碼標準375
25.4.2分解代碼378
25.4.3使用標準的目錄結構378
25.4.4文檔化和共享內部函數378
25.5實現版本控制379
25.6選擇一個開發環境380
25.7項目的文檔化380
25.8建立原型381
25.9將邏輯和內容分離381
25.10優化代碼382
25.10.1使用簡單優化382
25.10.2使用Zend產品382
25.11測試383
25.12進一步學習383
25.13下一章384
第26章調試385
26.1編程錯誤385
26.1.1語法錯誤385
26.1.2運行時錯誤386
26.1.3邏輯錯誤391
26.2使用變量幫助調試392
26.3錯誤報告級別393
26.4改變錯誤報告設置394
26.5觸發自定義錯誤395
26.6巧妙地處理錯誤396
26.7下一章398
第27章建立用戶身份驗證機制和個性化設置399
27.1解決方案的組成399
27.1.1用戶識別和個性化設置399
27.1.2保存書籤400
27.1.3推薦書籤400
27.2解決方案概述400
27.3實現數據庫402
27.4實現基本的網站403
27.5實現用戶身份驗證405
27.5.1註冊405
27.5.2登錄410
27.5.3登出413
27.5.4修改密碼414
27.5.5重設遺忘的密碼416
27.6實現書籤的存儲和檢索420
27.6.1添加書籤420
27.6.2顯示書籤422
27.6.3刪除書籤422
27.7實現書籤推薦424
27.8考慮可能的擴展427
27.9下一章427
第28章創建一個購物車428
28.1解決方案的組成428
28.1.1創建一個在線目錄428
28.1.2在用戶購買商品的時候記錄購買行為429
28.1.3實現一個付款系統429
28.1.4創建一個管理界面429
28.2解決方案概述429
28.3實現數據庫432
28.4實現在線目錄434
28.4.1列出目錄434
28.4.2列出一個目錄中的所有圖書437
28.4.3顯示圖書詳細信息438
28.5實現購物車440
28.5.1使用show_cart.php腳本440
28.5.2瀏覽購物車442
28.5.3將物品添加到購物庫444
28.5.4保存更新後的購物車446
28.5.5打印標題欄摘要447
28.5.6結賬447
28.6實現付款452
28.7實現一個管理界面454
28.8擴展該項目460
28.9使用一個已有系統461
28.10下一章461
第29章創建一個基於Web的電子郵件服務系統486
29.1解決方案的組成486
29.1.1電子郵件協議:POP3和IMAP
29.1.2PHP對POP3和IMAP的支持
29.2解決方案概述488
29.3建立數據庫489
29.4了解腳本架構490
29.5登錄與登出495
29.6建立賬戶498
29.6.1創建一個新賬戶499
29.6.2修改已有賬戶501
29.6.3刪除賬戶501
29.7閱讀郵件502
29.7.1選擇賬戶502
29.7.2查看郵箱內容504
29.7.3閱讀郵件消息507
29.7.4查看消息標題509
29.7.5刪除郵件509
29.8發送郵件510
29.8.1發送一則新消息510
29.8.2回復或轉發郵件512
29.9擴展這個項目514
29.10下一章514
第30章創建一個郵件列表管理器515
30.1解決方案的組成515
30.1.1建立列表和訂閱者數據庫516
30.1.2上載新聞信件516
30.1.3發送帶附件的郵件516
30.2解決方案概述516
30.3建立數據庫518
30.4定義腳本架構520
30.5實現登錄526
30.5.1新賬戶的創建527
30.5.2登錄529
30.6用戶函數的實現531
30.6.1查看列表531
30.6.2查看郵件列表信息535
30.6.3查看郵件列表存檔536
30.6.4訂閱與取消訂閱538
30.6.5更改賬戶設置539
30.6.6更改密碼539
30.6.7登出540
30.7管理功能的實現541
30.7.1創建新的郵件列表541
30.7.2上載新的新聞信件543
30.7.3多文件上載的處理545
30.7.4預覽新聞信件549
30.7.5發送郵件550
30.8擴展這個項目555
30.9下一章555
第31章創建一個Web論壇556
31.1理解流程
31.2解決方案的組成556
31.3解決方案概述557
31.4數據庫的設計558
31.5查看文章的樹型結構560
31.5.1展開和摺疊561
31.5.2顯示文章564
31.5.3使用treenode類564
31.6查看單個的文章570
31.7添加新文章572
31.8添加擴充578
31.9使用一個已有的系統578
31.10下一章578
第32章生成PDF格式的個性化文檔579
32.1項目概述
32.1.1評估文檔格式579
32.2解決方案的組成582
32.2.1問題與回答系統583
32.2.2文檔生成軟件583
32.3解決方案概述585
32.3.1提問585
32.3.2給答題評分587
32.3.3生成RTF證書589
32.3.4從模板生成PDF證書591
32.3.5使用PDFlib生成PDF文檔595
32.3.6使用PDFlib的一個「HelloWorld」程序595
32.3.7用PDFlib生成證書598
32.4處理標題的問題605
32.5擴展該項目605
32.6下一章606
第33章使用XML和SOAP來連接Web服務607
33.1項目概述:使用XML和Web服務
33.1.1理解XML
33.1.2理解Web服務611
33.2解決方案的組成612
33.2.1使用Amazon的Web服務接口613
33.2.2XML的解析:REST響應
33.2.3在PHP中使用SOAP614
33.2.4緩存614
33.3解決方案概述614
33.3.1核心應用程序618
33.3.2顯示特定種類的圖書623
33.3.3獲得一個AmazonResultSet類624
33.3.4使用REST發送和接收請求
33.3.5使用SOAP發送和接收請求
33.3.6緩存請求返回的數據636
33.3.7創建購物車639
33.3.8到Amazon付賬642
33.4安裝項目代碼642
33.5擴展這個項目643
33.6進一步學習643
第34章使用Ajax構建Web2.0應用
34.1Ajax是什麼?
34.1.1HTTP請求和響應
34.1.2DHTML和XHTML
34.1.3級聯樣式單(CSS)
34.1.4客戶端編程
34.1.5服務器端編程
34.1.6XML和XSLT
34.2Ajax基礎
34.2.1XMLHTTPRequest對象
34.2.2與服務器通信
34.2.3處理服務器響應
34.2.4整合應用
34.3在以前的項目添加Ajax元素
34.3.1在PHPBookmark應用中添加Ajax元素
34.4進一步學習
34.4.1進一步了解文檔對象模型(DOM)
34.4.2Ajax應用可用的JavaScript函數庫
34.4.3Ajax開發人員網站
第六篇附錄
附錄A安裝PHP及MySQL645
附錄BWeb資源664
第1章PHP快速入門教程
第2章數據的存儲與檢索
第3章使用數組
第4章字符串操作與正則表達式
第5章代碼重用與函數編寫
第6章面向對象的PHP
第7章錯誤和異常處理
……
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/258694.html