關(guān)于我們
書單推薦
新書推薦
|
PHP動態(tài)
本書以零基礎(chǔ)講解為宗旨,用實例引導(dǎo)讀者深入學(xué)習,采取“PHP基礎(chǔ)知識→核心技術(shù)→操作數(shù)據(jù)庫→高級應(yīng)用→項目實戰(zhàn)”的講解模式,深入淺出地講解PHP開發(fā)動態(tài)網(wǎng)站的各項技術(shù)及實戰(zhàn)技能。本書第1篇“PHP基礎(chǔ)知識”主要講解初識PHP,配置PHP服務(wù)器環(huán)境,PHP語言基礎(chǔ),流程控制和函數(shù),字符串和正則表達式、PHP數(shù)組及操作等;第2篇“核心技術(shù)”主要講解PHP與Web頁面交互、時間和日期,面向?qū)ο缶幊,錯誤、異常處理與調(diào)試,文件系統(tǒng)與操作,圖形圖像處理技術(shù),Cookie和會話管理,PHP加密技術(shù)等;第3篇“操作數(shù)據(jù)庫”主要講解MySQL數(shù)據(jù)庫基礎(chǔ),使用MySQL Workbench管理MySQL數(shù)據(jù)庫,PHP操作MySQL數(shù)據(jù)庫等;第4篇“高級應(yīng)用”主要講解PDO數(shù)據(jù)庫抽象類庫,JavaScript編程基礎(chǔ),PHP與XML技術(shù)的綜合應(yīng)用,PHP與Ajax的綜合應(yīng)用,MVC結(jié)構(gòu)與Smarty模板,Zend Framework框架等;第5篇“項目實戰(zhàn)”主要通過一個綜合案例開發(fā)論壇來整體講解PHP在動態(tài)網(wǎng)站開發(fā)中的技術(shù)。本書附帶的DVD光盤中贈送了豐富的資源,諸如本書實例完整源代碼、教學(xué)幻燈片、本書精品教學(xué)視頻、常用SQL語句速查手冊、PHP常用函數(shù)速查手冊、16個經(jīng)典項目開發(fā)完整源碼、PHP網(wǎng)站開發(fā)工程師面試技巧、PHP網(wǎng)站開發(fā)工程師常見面試題、優(yōu)秀網(wǎng)站開發(fā)工程師之路——網(wǎng)站開發(fā)經(jīng)驗及技巧大匯總。本書適合任何想學(xué)習PHP開發(fā)動態(tài)網(wǎng)站的人員,無論您是否從事計算機相關(guān)行業(yè),無論您是否接觸過PHP,通過學(xué)習均可快速掌握PHP開發(fā)動態(tài)網(wǎng)站的方法和技巧。
清華大學(xué)出版社“案例課堂”大系 叢書以案例的形式講解軟件的內(nèi)容,讀者可以在實踐中熟練掌握軟件的使用方法。每一個案例都精挑細選,同時配有全程語音講解的視頻文件,方便讀者學(xué)習。案例的選材廣泛,涉及到軟件應(yīng)用的各個領(lǐng)域、各個行業(yè),學(xué)習無死角。 “CG設(shè)計”系列全彩精印,同等價位下內(nèi)容更多,同等內(nèi)容下更實惠。 “網(wǎng)站開發(fā)”系列附贈超值,全面學(xué)習無障礙: CSS屬性速查表 HTML標簽速查表 網(wǎng)頁布局案例賞析 精彩網(wǎng)站配色方案賞析 精選javascript實例 javascript函數(shù)速查手冊 CSS DIV布局案例賞析 案例源文件與教學(xué)課件
目 錄第1篇 PHP基礎(chǔ)知識 第1章 初識PHP. 3 1.1 了解PHP. 4 1.1.1 PHP的概念... 4 1.1.2 PHP的發(fā)展歷程... 4 1.1.3 PHP語言的優(yōu)勢... 5 1.2 PHP的應(yīng)用領(lǐng)域... 5 1.3 PHP 5.5的新特點... 6 1.4 PHP常用開發(fā)工具... 8 1.4.1 PHP代碼開發(fā)工具... 8 1.4.2 網(wǎng)頁設(shè)計工具... 9 1.4.3 文本編輯工具... 9 1.5 網(wǎng)站建設(shè)的基本流程... 10 1.5.1 網(wǎng)站規(guī)劃... 10 1.5.2 搜集資料... 10 1.5.3 制作網(wǎng)頁... 11 1.5.4 網(wǎng)站測試... 12 1.5.5 申請域名... 12 1.5.6 申請空間... 12 1.5.7 網(wǎng)站備案... 12 1.5.8 發(fā)布網(wǎng)頁... 16 1.5.9 網(wǎng)站推廣和維護... 16 1.6 高手甜點... 17 1.7 跟我練練手... 17 第2章 配置PHP 服務(wù)器環(huán)境... 19 2.1 PHP服務(wù)器概述... 20 2.2 安裝PHP前的準備工作... 20 2.2.1 軟硬件環(huán)境... 20 2.2.2 實例1——獲取PHP 5.5安裝 2.3 PHP IIS服務(wù)器的安裝配置... 22 2.3.1 實例2——IIS簡介及其安裝... 23 2.3.2 實例3——PHP的安裝... 24 2.3.3 實例4——設(shè)置虛擬目錄... 26 2.4 PHP Apache服務(wù)器的環(huán)境搭建... 27 2.4.1 Apache簡介... 28 2.4.2 實例5——關(guān)閉原有的網(wǎng)站 2.4.3 實例6——安裝Apache. 29 2.4.4 實例7——將PHP與Apache 2.5 實例8——Windows下使用WampServer 2.6 實例9——測試第一個PHP程序... 34 2.7 高手甜點... 35 2.8 跟我練練手... 36 第3章 PHP語言基礎(chǔ)... 37 3.1 PHP標識... 38 3.1.1 短風格... 38 3.1.2 Script風格... 38 3.1.3 ASP風格... 38 3.2 編碼規(guī)范... 38 3.2.1 什么是編碼規(guī)范... 39 3.2.2 PHP的一些編碼規(guī)范... 39 3.3 常量... 40 3.3.1 實例1——聲明和使用常量... 40 3.3.2 實例2——內(nèi)置常量... 41 3.4 變量... 43 3.4.1 PHP中的變量聲明... 43 3.4.2 實例3——可變變量與變量的 3.4.3 實例4——變量作用域... 44 3.5 變量的類型... 48 3.5.1 什么是類型... 48 3.5.2 整型... 49 3.5.3 浮點型... 49 3.5.4 布爾型... 49 3.5.5 實例5——字符串型... 50 3.5.6 實例6——數(shù)組型... 51 3.5.7 對象型... 53 3.5.8 NULL型... 53 3.5.9 資源類型... 54 3.5.10 實例7——數(shù)據(jù)類型之間相互 3.6 運算符... 55 3.6.1 實例8——算術(shù)運算符... 55 3.6.2 實例9——字符串運算符... 56 3.6.3 賦值運算符... 57 3.6.4 實例10——比較運算符... 58 3.6.5 邏輯運算符... 59 3.6.6 按位運算符... 59 3.6.7 否定控制運算符... 60 3.6.8 錯誤控制運算符... 60 3.6.9 三元運算符... 60 3.6.10 運算符的優(yōu)先級和結(jié)合規(guī)則... 60 3.7 PHP的表達式... 60 3.8 實例11——創(chuàng)建多維數(shù)組... 61 3.9 高手甜點... 62 3.10 跟我練練手... 62 第4章 流程控制和函數(shù)... 63 4.1 流程控制概述... 64 4.2 條件控制結(jié)構(gòu)... 64 4.2.1 實例1——單一條件分支結(jié)構(gòu) 4.2.2 實例2——雙向條件分支結(jié)構(gòu) 4.2.3 實例3——多向條件分支結(jié)構(gòu) 4.2.4 實例4——多向條件分支結(jié)構(gòu) 4.3 循環(huán)控制結(jié)構(gòu)... 69 4.3.1 實例5——while循環(huán)語句... 69 4.3.2 實例6——do…while循環(huán) 4.3.3 實例7——for循環(huán)語句... 72 4.3.4 實例8——foreach循環(huán)語句... 73 4.3.5 實例9——流程控制的另一種 4.3.6 實例10——使用break/continue 4.4 函數(shù)... 77 4.4.1 PHP函數(shù)概述... 77 4.4.2 實例11——定義和調(diào)用函數(shù)... 77 4.4.3 實例12——向函數(shù)傳遞參數(shù) 4.4.4 實例13——向函數(shù)傳遞參數(shù) 4.4.5 實例14——從函數(shù)中返回值... 80 4.4.6 實例15——對函數(shù)的引用... 81 4.4.7 實例16——對函數(shù)取消引用... 82 4.5 實例17——條件分支結(jié)構(gòu)的綜合 4.6 實例18——循環(huán)控制結(jié)構(gòu)的綜合 4.7 高手甜點... 85 4.8 跟我練練手... 86 第5章 字符串和正則表達式... 87 5.1 實例1——字符串的單引號和雙引號... 88 5.2 實例2——字符串的連接符... 89 5.3 字符串的基本操作... 91 5.3.1 手動和自動轉(zhuǎn)義字符串中的 5.3.2 實例3——計算字符串的長度... 91 5.3.3 實例4——字符串單詞統(tǒng)計... 92 5.3.4 實例5——清理字符串中的 5.3.5 實例6——字符串切分與組合... 93 5.3.6 實例7——字符串子串截取... 94 5.3.7 實例8——字符串子串替換... 95 5.3.8 實例9——字符串查找... 96 5.4 什么是正則表達式... 97 5.5 正則表達式語法規(guī)則... 97 5.5.1 方括號([ ]) 98 5.5.2 連字符(-) 98 5.5.3 點號字符(.) 98 5.5.4 限定符( 、*、?、{n,m}) 98 5.5.5 行定位符(^和$) 98 5.5.6 排除字符([^]) 99 5.5.7 括號字符(( )) 99 5.5.8 選擇字符(|) 99 5.5.9 轉(zhuǎn)義字符(\)與反斜杠(\ 99 5.5.10 認證email的正則表達... 99 5.5.11 實例10——使用正則表達式對 5.5.12 實例11——使用正則表達式 5.5.13 實例12——使用正則表達式 5.6 實例13——創(chuàng)建酒店系統(tǒng)在線 5.7 高手甜點... 106 5.8 跟我練練手... 106 第6章 PHP數(shù)組及操作... 109 6.1 什么是數(shù)組... 110 6.2 數(shù)組類型... 110 6.2.1 實例1——數(shù)字索引數(shù)組... 110 6.2.2 實例2——關(guān)聯(lián)索引數(shù)組... 111 6.3 數(shù)組構(gòu)造... 112 6.3.1 實例3——一維數(shù)組... 112 6.3.2 實例4——多維數(shù)組... 113 6.4 遍歷數(shù)組... 115 6.4.1 實例5——遍歷一維數(shù)字索引 6.4.2 實例6——遍歷一維聯(lián)合索引 6.4.3 實例7——遍歷多維數(shù)組... 117 6.5 數(shù)組排序... 118 6.5.1 實例8——一維數(shù)組排序... 118 6.5.2 實例9——多維數(shù)組排序... 120 6.6 實例10——字符串與數(shù)組的轉(zhuǎn)換... 121 6.7 向數(shù)組中添加和刪除元素... 122 6.7.1 實例11——向數(shù)組中添加 6.7.2 實例12——從數(shù)組中刪除 6.8 實例13——查詢數(shù)組中指定元素... 126 6.9 實例14——統(tǒng)計數(shù)組元素個數(shù)... 127 6.10 實例15——刪除數(shù)組中重復(fù)元素... 129 6.11 實例16——調(diào)換數(shù)組中的鍵值 6.12 實例17——數(shù)組的序列化... 131 6.13 高手甜點... 132 6.14 跟我練練手... 132
第2篇 核心 技 術(shù) 第7章 PHP與Web 頁面交互... 137 7.1 實例1——使用動態(tài)內(nèi)容... 138 7.2 表單與PHP. 139 7.3 表單設(shè)計... 139 7.3.1 表單基本結(jié)構(gòu)... 139 7.3.2 實例2——文本框... 139 7.3.3 實例3——選項框... 141 7.3.4 實例4——單選按鈕... 142 7.3.5 實例5——下拉列表... 144 7.3.6 實例6——重置按鈕... 145 7.3.7 實例7——提交按鈕... 146 7.4 傳遞數(shù)據(jù)的兩種方法... 148 7.4.1 用POST方式傳遞數(shù)據(jù)... 149 7.4.2 實例8——用GET方式傳遞 7.5 PHP獲取表單傳遞數(shù)據(jù)的方法... 150 7.6 實例9——PHP對URL傳遞的參數(shù) 7.7 實例10——PHP與Web表單的綜合 7.8 高手甜點... 153 7.9 跟我練練手... 154 第8章 時間和日期... 155 8.1 系統(tǒng)時區(qū)設(shè)置... 156 8.1.1 時區(qū)劃分... 156 8.1.2 時區(qū)設(shè)置... 156 8.2 PHP日期和時間函數(shù)... 156 8.2.1 關(guān)于UNIX時間戳... 156 8.2.2 實例1——獲取當前時間戳... 157 8.2.3 獲取當前日期和時間... 158 8.2.4 實例2——使用時間戳獲取日期 8.2.5 實例3——檢驗日期的 8.2.6 實例4——輸出格式化時間戳的 8.2.7 實例5——顯示本地化的日期 8.2.8 實例6——將日期和時間解析 8.2.9 日期和時間在PHP和MySQL 8.3 實例7——比較兩個時間的大小... 166 8.4 實例8——實現(xiàn)倒計時功能... 167 8.5 高手甜點... 167 8.6 跟我練練手... 168 第9章 面向?qū)ο缶幊?.. 169 9.1 類和對象的介紹... 170 9.2 PHP中類的操作... 171 9.2.1 類的聲明... 171 9.2.2 成員屬性... 171 9.2.3 成員方法... 172 9.2.4 類的實例化... 172 9.2.5 實例1——訪問類中的成員屬性 9.3 實例2——構(gòu)造方法和析構(gòu)方法... 174 9.4 實例3——訪問方法... 176 9.5 實例4——類的繼承... 178 9.6 抽象類和接口... 179 9.6.1 實例5——抽象類... 179 9.6.2 實例6——接口... 180 9.7 面向?qū)ο蟮亩鄳B(tài)性... 183 9.7.1 實例7——通過繼承實現(xiàn) 9.7.2 實例8——通過接口實現(xiàn) 9.8 高手甜點... 186 9.9 跟我練練手... 186 第10章 錯誤、異常處理與調(diào)試... 187 10.1 常見的錯誤和異常... 188 10.2 錯誤處理... 191 10.2.1 php.ini中的錯誤處理機制... 191 10.2.2 實例1——應(yīng)用DIE語句 10.2.3 實例2——自定義錯誤和錯誤 10.2.4 實例3——錯誤記錄... 196 10.3 異常處理... 197 10.3.1 實例4——異常的基本處理 10.3.2 實例5——自定義的異常 10.3.3 實例6——處理多個異常... 200 10.3.4 實例7——設(shè)置頂層異常 10.4 實例8——處理異;蝈e誤... 203 10.5 高手甜點... 204 10.6 跟我練練手... 205 第11章 文件系統(tǒng)與操作... 207 11.1 文件操作... 208 11.1.1 實例1——文件數(shù)據(jù)寫入... 208 11.1.2 實例2——文件數(shù)據(jù)讀取... 211 11.2 實例3——目錄操作... 213 11.3 實例4——文件的上傳... 218 11.4 實例5——編寫文本類型的訪客 11.5 高手甜點... 221 11.6 跟我練練手... 221 第12章 圖形圖像處理技術(shù)... 223 12.1 實例1——在PHP中加載GD庫... 224 12.2 圖形圖像的典型應(yīng)用案例... 226 12.2.1 實例2——創(chuàng)建一個簡單的 12.2.2 實例3——使用GD2函數(shù)在 12.2.3 實例4——使用TrueType字體 12.3 Jpgraph庫的使用... 231 12.3.1 實例5——Jpgraph的安裝... 231 12.3.2 實例6——Jpgraph的配置... 232 12.3.3 實例7——制作柱形圖 12.3.4 實例8——制作圓形統(tǒng)計圖... 234 12.4 實例9——制作3D餅形統(tǒng)計圖... 236 12.5 高手甜點... 237 12.6 跟我練練手... 238 第13章 Cookie和會話管理... 239 13.1 Cookie基本操作... 240 13.1.1 什么是Cookie. 240 13.1.2 實例1——創(chuàng)建Cookie. 240 13.1.3 實例2——讀取Cookie. 241 13.1.4 實例3——刪除Cookie. 242 13.2 認識Session. 243 13.2.1 什么是Session. 243 13.2.2 Session基本功能... 244 13.2.3 Cookie與Session. 244 13.2.4 儲存Session ID在Cookie 13.3 會話管理... 244 13.3.1 實例4——創(chuàng)建會話... 244 13.3.2 實例5——注冊會話變量... 245 13.3.3 實例6——使用會話變量... 246 13.3.4 實例7——注銷和銷毀會話 13.4 實例8——會話管理的綜合應(yīng)用... 247 13.5 高手甜點... 248 13.6 跟我練練手... 249 第14章 PHP加密技術(shù)... 251 14.1 使用PHP加密函數(shù)... 252 14.1.1 實例1——使用md5()函數(shù)進行 14.1.2 實例2——使用crypt()函數(shù) 14.1.3 實例3——使用sha1()函數(shù)進行 14.2 使用PHP加密擴展庫... 254 14.2.1 實例4——安裝和使用Mcrypt 14.2.2 實例5——使用Mhash 14.3 高手甜點... 258 14.4 跟我練練手... 259
第3篇 數(shù)據(jù)庫操作 第15章 MySQL數(shù)據(jù)庫基礎(chǔ)... 263 15.1 什么是MySQL. 264 15.1.1 客戶機—服務(wù)器軟件... 264 15.1.2 MySQL版本... 264 15.1.3 MySQL的優(yōu)勢... 265 15.2 啟動服務(wù)并登錄MySQL數(shù)據(jù)庫... 265 15.2.1 實例1——啟動MySQL 15.2.2 實例2——登錄MySQL 15.2.3 實例3——配置Path變量... 269 15.3 MySQL數(shù)據(jù)庫的基本操作... 271 15.3.1 實例4——創(chuàng)建數(shù)據(jù)庫... 271 15.3.2 實例5——查看數(shù)據(jù)庫... 271 15.3.3 實例6——刪除數(shù)據(jù)庫... 272 15.3.4 實例7——選擇數(shù)據(jù)庫... 272 15.4 MySQL數(shù)據(jù)表的基本操作... 273 15.4.1 實例8——創(chuàng)建數(shù)據(jù)表... 273 15.4.2 實例9——查看數(shù)據(jù)表結(jié)構(gòu)... 274 15.4.3 實例10——修改數(shù)據(jù)表 15.4.4 實例11——刪除數(shù)據(jù)表... 276 15.5 MySQL語句操作... 276 15.5.1 實例12——插入記錄... 277 15.5.2 實例13——查詢記錄... 277 15.5.3 實例14——修改記錄... 278 15.5.4 實例15——刪除記錄... 278 15.6 MySQL數(shù)據(jù)庫的備份與還原... 278 15.6.1 實例16——數(shù)據(jù)備份... 279 15.6.2 實例17——數(shù)據(jù)還原... 285 15.7 高手甜點... 287 15.8 跟我練練手... 288 第16章 使用MySQL Workbench 16.1 MySQL Workbench簡介... 290 16.1.1 MySQL Workbench概述... 290 16.1.2 MySQL Workbench 的優(yōu)勢... 290 16.1.3 MySQL Workbench 的安裝... 290 16.2 SQL Development的基本操作... 293 16.2.1 創(chuàng)建數(shù)據(jù)庫連接... 293 16.2.2 創(chuàng)建新的數(shù)據(jù)庫... 294 16.2.3 創(chuàng)建和刪除新的數(shù)據(jù)表... 296 16.2.4 添加、修改表記錄... 299 16.2.5 查詢表記錄... 299 16.2.6 修改表結(jié)構(gòu)... 300 16.3 Data Modeling的基本操作... 301 16.3.1 建立E-R模型... 301 16.3.2 導(dǎo)入E-R模型... 305 16.4 Server Administration的基本操作... 307 16.4.1 管理MySQL用戶... 307 16.4.2 備份MySQL數(shù)據(jù)庫... 310 16.4.3 還原MySQL數(shù)據(jù)庫... 313 16.5 高手甜點... 314 16.6 跟我練練手... 315 第17章 PHP操作MySQL數(shù)據(jù)庫... 317 17.1 PHP訪問MySQL數(shù)據(jù)庫的一般 17.2 實例1——連接數(shù)據(jù)庫前的準備 17.3 PHP操作MySQL數(shù)據(jù)庫的函數(shù)... 319 17.3.1 實例2——通過mysqli類庫訪問 17.3.2 實例3——使用mysqli_connect() 17.3.3 實例4——使用mysqli_select_db() 17.3.4 實例5——使用mysqli_query() 17.3.5 實例6——使用mysqli_fetch_assoc() 17.3.6 實例7——使用mysqli_fetch_ 17.3.7 實例8——使用mysqli_num_ 17.3.8 實例9——使用mysqli_free_ 17.3.9 實例10——使用mysqli_close() 17.4 實例11——使用insert語句動態(tài)添加 17.5 實例12——使用select語句查詢數(shù)據(jù) 17.6 高手甜點... 328 17.7 跟我練練手... 329
第4篇 高級 應(yīng) 用 第18章 PDO數(shù)據(jù)庫抽象類庫... 333 18.1 PDO概述... 334 18.2 實例1——PDO的安裝... 334 18.3 使用PDO操作MySQL. 335 18.3.1 實例2——連接MySQL數(shù)據(jù)庫 18.3.2 實例3——使用PDO時的try 18.3.3 實例4——使用PDO執(zhí)行SQL 18.3.4 實例5——使用PDO獲取返回 18.3.5 實例6——使用PDO執(zhí)行SQL 18.3.6 實例7——使用PDO執(zhí)行SQL 18.4 實例8——PDO的prepare表述... 343 18.5 高手甜點... 344 18.6 跟我練練手... 345 第19章 JavaScript編程基礎(chǔ)... 347 19.1 認識JavaScript 348 19.1.1 什么是JavaScript 348 19.1.2 JavaScript的特點... 348 19.2 JavaScript在HTML中的使用... 349 19.2.1 實例1——在HTML網(wǎng)頁頭中 19.2.2 實例2——在HTML網(wǎng)頁中嵌入 19.2.3 實例3——在HTML網(wǎng)頁的元素 19.2.4 實例4——在HTML中調(diào)用已經(jīng) 19.2.5 實例5——通過JavaScript偽 19.3 JavaScript的基本語法... 354 19.3.1 執(zhí)行順序... 355 19.3.2 區(qū)分大小寫... 355 19.3.3 分號與空格... 355 19.3.4 對代碼行進行折行... 355 19.3.5 實例6——注釋... 356 19.4 JavaScript的數(shù)據(jù)結(jié)構(gòu)... 357 19.4.1 標識符... 357 19.4.2 關(guān)鍵字... 358 19.4.3 保留字... 358 19.4.4 常量... 359 19.4.5 實例7——變量... 359 19.5 看透代碼中的數(shù)據(jù)類型... 361 19.5.1 實例8——typeof運算符... 362 19.5.2 實例9——Undefined類型... 363 19.5.3 實例10——Null類型... 363 19.5.4 實例11——Boolean類型... 364 19.5.5 實例12——Number類型... 365 19.5.6 實例13——String類型... 366 19.6 條件判斷語句... 367 19.6.1 實例14——if語句... 367 19.6.2 實例15——if…else語句... 368 19.6.3 實例16——switch語句... 369 19.7 循環(huán)控制語句... 371 19.7.1 實例17——while語句... 371 19.7.2 實例18——do…while語句... 372 19.7.3 實例19——for循環(huán)... 373 19.8 在PHP中調(diào)用JavaScript代碼... 374 19.8.1 實例20——驗證表單元素的值 19.8.2 實例21——實現(xiàn)即時驗證 19.9 實例22——制作樹形菜單... 377 19.10 高手甜點... 381 19.11 跟我練練手... 382 第20章 PHP與XML技術(shù)的綜合 20.1 實例1——理解XML概念... 384 20.2 XML語法基礎(chǔ)... 385 20.2.1 實例2——XML文檔組成 20.2.2 實例3——XML元素介紹... 387 20.2.3 處理指令實體引用... 389 20.2.4 實例4——XML命名空間... 389 20.2.5 實例5——XML DTD.. 390 20.2.6 實例6——使用CDATA 20.3 實例7——將XML文檔轉(zhuǎn)換為HTML 20.4 實例8——在PHP中創(chuàng)建XML 20.5 使用SimpleXML擴展... 393 20.5.1 實例9——創(chuàng)建SimpleXMLElement 20.5.2 實例10——訪問特定節(jié)點元素 20.5.3 實例11——添加XML元素 20.6 實例12——動態(tài)創(chuàng)建XML文檔... 397 20.7 高手甜點... 398 20.8 跟我練練手... 398 第21章 PHP與Ajax的綜合應(yīng)用... 399 21.1 Ajax概述... 400 21.1.1 實例1——什么是Ajax. 400 21.1.2 Ajax的關(guān)鍵元素... 403 21.1.3 實例2——CSS與Ajax. 403 21.2 Ajax快速入門... 404 21.2.1 實例3——全面剖析 21.2.2 實例4——發(fā)出Ajax請求... 406 21.2.3 實例5——處理服務(wù)器響應(yīng)... 408 21.3 實例6——在PHP中應(yīng)用Ajax技術(shù) 21.4 高手甜點... 414 21.5 跟我練練手... 415 第22章 MVC結(jié)構(gòu)與 Smarty模板... 417 22.1 MVC概述... 418 22.2 什么是模板引擎... 419 22.3 Smarty概述... 419 22.3.1 什么是Smarty. 419 22.3.2 Smarty與MVC.. 420 22.4 Smarty的安裝和配置... 420 22.4.1 實例1——Smarty下載 22.4.2 實例2——第一個Smarty 22.5 Smarty模板設(shè)計... 422 22.5.1 Smarty模板文件... 422 22.5.2 實例3——Smarty標識... 422 22.5.3 實例4——Smarty變量... 424 22.5.4 實例5——Smarty數(shù)組... 425 22.5.5 實例6——Smarty中流程控制 22.6 高手甜點... 428 22.7 跟我練練手... 428 第23章 Zend Framework 框架... 429 23.1 什么是ZendFramework框架... 430 23.2 Zend Framework的目錄結(jié)構(gòu)... 430 23.3 Zend Framework的安裝與測試... 431 23.3.1 實例1——Zend Framework的 23.3.2 實例2——創(chuàng)建一個新的Zend 23.4 PHP與ZendFramework的基本
23.4.1 實例3——在Zend Framework 23.4.2 實例4——在Zend Framework的 23.4.3 實例5——在Zend Framework中 23.4.4 實例6——在Zend Framework中 23.4.5 實例7——在Zend Framework中 23.5 高手甜點... 440 23.6 跟我練練手... 440
第5篇 項目 實 戰(zhàn) 第24章 開發(fā)論壇... 443 24.1 網(wǎng)站的需求分析... 444 24.1.1 需求分析... 444 24.1.2 網(wǎng)站功能模塊分析... 444 24.2 數(shù)據(jù)庫分析... 444 24.2.1 分析數(shù)據(jù)庫... 445 24.2.2 創(chuàng)建數(shù)據(jù)表... 445 24.3 論壇的代碼實現(xiàn)... 446 24.3.1 數(shù)據(jù)庫連接相關(guān)文件... 446 24.3.2 論壇主頁面... 452 24.3.3 新用戶注冊頁面... 456 24.3.4 論壇帖子的相關(guān)頁面... 459 24.3.5 后臺管理系統(tǒng)的相關(guān)頁面... 469
第2章 配置PHP服務(wù)器環(huán)境 在編寫PHP文件之前,讀者需要配置PHP服務(wù)器,包括軟硬件環(huán)境的檢查,如何獲得PHP安裝資源包等,詳細講解目前常見的主流PHP服務(wù)器搭配方案:PHP IIS和PHP Apache。另外講述了在Windows下如何使用WampServer組合包,最后通過一個測試案例,讀者可以檢查Web服務(wù)器建構(gòu)是否成功。
本章要點(已掌握的在方框中打鉤) 了解PHP服務(wù)器的概念 熟悉安裝PHP前的準備工作 掌握PHP IIS服務(wù)器的安裝配置方法 掌握PHP Apache服務(wù)器的環(huán)境搭建方法 Windows下使用WampServer組合包 測試第一個PHP程序
2.1 PHP服務(wù)器概述 在學(xué)習PHP服務(wù)器之前,讀者需要了解HTML網(wǎng)頁的運行原理。網(wǎng)頁瀏覽者在客戶端通過瀏覽器向服務(wù)器發(fā)出頁面請求,服務(wù)器接收到請求后將頁面返回到客戶端的瀏覽器,這樣網(wǎng)頁瀏覽者即可看到頁面顯示效果。 PHP語言在Web開發(fā)中作為嵌入式語言,需要嵌入HTML代碼中執(zhí)行。要想運行PHP網(wǎng)站,需要搭建PHP服務(wù)器。PHP網(wǎng)站的運行原理如圖2-1所示。
圖2-1 PHP網(wǎng)站運行原理從圖2-1可以看出,PHP程序運行的基本流程如下。 (1) 網(wǎng)頁瀏覽者首先在瀏覽器的地址欄中輸入要訪問的主頁地址,按Enter鍵觸發(fā)該申請。 (2) 瀏覽器將申請發(fā)送到PHP網(wǎng)站服務(wù)器。網(wǎng)站服務(wù)器根據(jù)申請讀取數(shù)據(jù)庫中的頁面。 (3) 通過Web服務(wù)器向客戶端發(fā)送處理結(jié)果,客戶端的瀏覽器顯示最終頁面。
2.2 安裝PHP前的準備工作 在安裝PHP之前,讀者需要了解安裝所需要的軟硬件環(huán)境和獲取PHP安裝資源包的途徑。
|
| 圖2-3中,下拉列表中VC11代表的是the Visual Studio 2012 compiler編譯器編譯,通常用于PHP IIS服務(wù)器下。要求用戶安裝Visual C Redistributable for Visual Studio 2012。 |
顯示所選版本號中PHP安裝包的各種格式。這里選擇Zip壓縮格式,單擊Zip文字鏈接,如圖2-4所示。
打開【另存為】對話框,選擇保存路徑,然后保存文件即可,如圖2-5所示。
2.3 PHP IIS服務(wù)器的安裝配置
下面介紹PHP IIS服務(wù)器架構(gòu)的配置方法和技巧。
IIS是Internet Information Services(互聯(lián)網(wǎng)信息服務(wù))的簡稱,是微軟公司提供的基于Microsoft Windows的互聯(lián)網(wǎng)基本服務(wù)。由于它功能強大、操作簡單和使用方便,所以是目前較為流行的Web服務(wù)器之一。
目前IIS只能運行在Windows系列的操作系統(tǒng)上。針對不同的操作系統(tǒng),IIS也有不同的版本。下面以Windows 7為例進行講解,默認情況下此操作系統(tǒng)沒有安裝IIS。
安裝IIS組件的具體步驟如下。
單擊【開始】按鈕,在彈出的【開始】菜單中選擇【控制面板】命令,如圖2-6所示。
打開【控制面板】窗口,雙擊【程序】選項,如圖2-7所示。
圖2-6 選擇【控制面板】命令 |
圖2-7 【控制面板】窗口 |
打開【程序】窗口,從中單擊【打開或關(guān)閉Windows功能】文字鏈接,如圖2-8所示。
在打開的【W(wǎng)indows功能】對話框中,選中【Internet信息服務(wù)】復(fù)選框,然后單擊【確定】按鈕,如圖2-9所示。
圖2-8 【程序】窗口 |
圖2-9 【W(wǎng)indows功能】對話框 |
安裝完成后,即可測試是否成功。在IE瀏覽器的地址欄中輸入“http://localhost/”,打開IIS的歡迎畫面頁面,如圖2-10所示。
IIS安裝完成后,即可開始安裝PHP。PHP的安裝過程大致分成3個步驟。
將
在安裝目錄中,找到php.ini-development文件,此文件正是PHP 5.5的配置文件。將這個文件的擴展名.ini-development修改為.ini,然后用記事本打開。文件中參數(shù)很多,所以建議讀者使用記事本的查找功能,快速查找需要的參數(shù)。
查找并修改相應(yīng)的參數(shù)值:extension_dir="D:\PHP5\ext",此參數(shù)為PHP擴展函數(shù)的查找路徑,其中“D:\PHP5\”為PHP的安裝路徑,讀者可以根據(jù)自己的安裝路徑進行修改。采用同樣的方法,修改參數(shù):cgi.force_redirect =0。
另外,去除下面的參數(shù)值擴展前的引號,最終結(jié)果如圖2-12所示。
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_odbc.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
要想讓系統(tǒng)運行PHP時找到上面的安裝路徑,就需要將PHP的安裝目錄添加到系統(tǒng)變量中。具體操作步驟如下。
右擊桌面上的【計算機】圖標,在彈出的快捷菜單中選擇【屬性】命令,打開【系統(tǒng)】窗口,如圖2-13所示。
單擊【高級系統(tǒng)設(shè)置】文字鏈接,打開【系統(tǒng)屬性】對話框,如圖2-14所示。
默認顯示【高級】選項卡,在該選項卡中單擊【環(huán)境變量】按鈕,打開【環(huán)境變量】對話框。在【系統(tǒng)變量】列表框中選擇變量Path,然后單擊【編輯】按鈕,如圖2-15所示。
彈出【編輯系統(tǒng)變量】對話框,在【變量值】文本框的末尾輸入“;d:\PHP
單擊【確定】按鈕,返回到【環(huán)境變量】對話框,依次單擊【確定】按鈕即可關(guān)閉對話框,然后重新啟動計算機。這樣設(shè)置的環(huán)境變量即可生效。
圖2-14 【系統(tǒng)屬性】對話框 |
圖2-15 【環(huán)境變量】對話框 |
如果用戶是按照前述的方式來啟動 IIS 網(wǎng)站服務(wù)器,那么整個網(wǎng)站服務(wù)器的根目錄就位于“(系統(tǒng)盤符):\Inetpub\wwwroot”中,也就是如果要添加網(wǎng)頁到網(wǎng)站中顯示,都必須放置在這個目錄之下。但是會發(fā)現(xiàn)這個路徑不僅太長,也不好記,使用起來相當不方便。
這些問題都可以通過修改虛擬目錄來解決,具體操作步驟如下。
在桌面上右擊【計算機】圖標,在彈出的快捷菜單中選擇【管理】命令,打開【計算機管理】窗口,在左側(cè)的列表框中展開【服務(wù)和應(yīng)用程序】選項,選擇【Internet 信息服務(wù)(IIS)管理器】選項,在右側(cè)選擇DefaultWeb Site選項后,右擊并在彈出的快捷菜單中選擇【添加虛擬目錄】命令,如圖2-17所示。
打開【添加虛擬目錄】對話框,在【別名】文本框中輸入虛擬網(wǎng)站的名稱,這里輸入“php
至此,已完成了 IIS 網(wǎng)站服務(wù)器設(shè)置的更改,IIS 網(wǎng)站服務(wù)器的網(wǎng)站虛擬目錄已經(jīng)更改為“D:\php”了。
2.4 PHP Apache服務(wù)器的環(huán)境搭建
Apache支持大部分操作系統(tǒng),搭配PHP程序的應(yīng)用,即可開發(fā)出功能強大的互動網(wǎng)站。本節(jié)主要講述PHP Apache服務(wù)器的搭建方法。
Apache可以運行在幾乎所有的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是目前最流行的Web服務(wù)器端軟件之一。
和一般的Web服務(wù)器相比,Apache主要特點如下。
(1) 跨平臺應(yīng)用:幾乎可以在所有的計算機平臺上運行。
(2) 開放源代碼:Apache服務(wù)程序由全世界的眾多開發(fā)者共同維護,并且任何人都可以自由使用,充分體現(xiàn)了開源軟件的精神。
(3) 支持HTTP 1.1協(xié)議:Apache是最先使用HTTP 1.1協(xié)議的Web服務(wù)器之一,它完全兼容HTTP 1.1協(xié)議并與HTTP 1.0協(xié)議向后兼容。Apache已為新協(xié)議所提供的全部內(nèi)容做好了必要的準備。
(4) 支持通用網(wǎng)關(guān)接口(CGI):Apache遵守CGI 1.1標準并且提供了擴充的特征,如定制環(huán)境變量和很難在其他Web服務(wù)器中找到的調(diào)試支持功能。
(5) 支持常見的網(wǎng)頁編程語言:可支持的網(wǎng)頁編程語言包括PERL、PHP、Python和Java等,支持各種常用的Web編程語言使Apache具有更廣泛的應(yīng)用領(lǐng)域。
(6) 模塊化設(shè)計:通過標準的模塊實現(xiàn)專有的功能,提高了項目完成的效率。
(7) 運行非常穩(wěn)定,同時具備效率高、成本低的特點,而且具有良好的安全性。
在安裝 Apache 網(wǎng)站服務(wù)器之前,如果所使用的操作系統(tǒng)已經(jīng)安裝了網(wǎng)站服務(wù)器,如IIS網(wǎng)站服務(wù)器等,用戶必須要先停止這些服務(wù)器,才能正確安裝 Apache 網(wǎng)站服務(wù)器。
以 Windows 7 操作系統(tǒng)為例,請在桌面上右擊【計算機】圖標,在彈出的快捷菜單中選擇【管理】命令,打開【計算機管理】窗口,在左側(cè)的列表框中展開【服務(wù)和應(yīng)用程序】選項,然后選擇【Internet 信息服務(wù)(IIS)管理器】選項,在右側(cè)的列表框中單擊【停止】文字鏈接即可停止IIS服務(wù)器,如圖2-19所示。
如此一來,原來的服務(wù)器軟件即失效不再工作,也不會與即將安裝的 Apache 網(wǎng)站服務(wù)器產(chǎn)生沖突。當然如果用戶的系統(tǒng)原來就沒有安裝 IIS 等服務(wù)器軟件,則可略過這一小節(jié)的步驟直接進行服務(wù)器的安裝。
Apache是免費軟件,用戶可以從官方網(wǎng)站直接下載。Apache的官方網(wǎng)站為http://www.apache.org。
下面以Apache 2.2為例,講解如何安裝Apache。具體操作步驟如下。
雙擊Apache安裝程序,打開安裝向?qū)g迎界面,單擊Next按鈕,如圖2-20所示。
彈出Apache許可協(xié)議界面,閱讀完后,選中Iaccept the terms in the license agreement單選按鈕,單擊Next按鈕,如圖2-21所示。
圖2-20 歡迎界面 |
圖2-21 Apache許可協(xié)議界面 |
彈出Apache 服務(wù)器注意事項界面,閱讀完成后,單擊Next按鈕,如圖2-22所示。
彈出服務(wù)器信息設(shè)置界面,輸入服務(wù)器的一些基本信息,分別為Network Domain(網(wǎng)絡(luò)域名)、Server Name(服務(wù)器名)、Administrator’s Email Address(管理員信箱)和Apache的工作方式。如果只是在本地計算機上使用Apache,前兩項可以輸入“localhost”。工作方式建議選擇第一項:針對所有用戶,工作端口為80,當機器啟動時自動啟動Apache。單擊Next按鈕,如圖2-23所示。
彈出安裝類型界面,其中Typical為典型安裝,Custom為自定義安裝。默認情況下,選擇典型安裝即可,單擊Next按鈕,如圖2-24所示。
彈出安裝路徑選擇界面,單擊Change按鈕,可以重新設(shè)置安裝路徑,本實例采用默認安裝路徑,單擊Next按鈕,如圖2-25所示。
彈出安裝準備就緒界面,單擊Install按鈕,如圖2-26所示。
系統(tǒng)開始自動安裝Apache主程序,安裝完成后,彈出提示信息對話框,單擊Finish按鈕關(guān)閉對話框,如圖2-27所示。
圖2-22 Apache 服務(wù)器注意事項界面 |
圖2-23 服務(wù)器信息設(shè)置界面 | ||
圖2-24 安裝類型界面 |
圖2-25 安裝路徑選擇界面 |
| |
圖2-26 安裝準備就緒界面 |
圖2-27 Apache安裝完成 |
| |