基本資料
細說PHP(精要版)(含DVD光碟1張)(150小時教學視頻 超強資源配套學習+跟蹤![](/img/f/05a/nBnauM3X3EzMwgzMwUDO2kTM5MTMzYjM1gzM2MTNwAzMxAzL1gzL3AzLt92YucmbvRWdo5Cd0FmLyE2LvoDc0RHa.jpg)
LAMP兄弟連組編高洛峰編著
ISBN 978-7-121-20147-9
2013年6月出版
定價:49.80元
388頁
16開
編輯推薦
基於PHP最流行版本,PHP方面的學習和開發使用的最好書籍!150小時教學視頻,超強資源配套學習+跟蹤服務,幫助讀者全面掌握PHP
內容提要
PHP是開發Web套用系統最理想的工具,擁有易於使用、功能強大、成本低廉、安全性高、開發速度快且執行靈活等優點。《細說PHP(第2版)》自出版以來,銷售一路在同類書籍中領先,已成為PHP學習者首選的工具書。為了可以讓讀者攜帶方便及更精準地掌握PHP的重點、要點,同時能使之作為大學計算機系PHP教材普及,特別推出《細說PHP精要版》。本書是以《細說PHP(第2版)》為基礎,提取出精華內容,都是PHP開發中必須需要掌握的技術點。全書以實用為目標設計,包含PHP開發中必備的各項技術,對已列出的每一個知識點都進行了深入詳細的講解,並附有大量的經典實例代碼,圖文並茂,並且側重介紹了PHP的相關技術在實際Web開發中的套用。對於PHP套用開發的新手而言,本書不失為一本好的入門教材,內容既實用又全面,所有實例都可以在開發中直接套用,並輔以大量的視頻教程、配套的教學課件、章節練習題等,使讀者輕鬆掌握所學知識,特別適合大中專院校的師生作為PHP授課教材使用。
書本目錄
第1章LAMP網站構建 11.1介紹網站給你認識 1
1.1.1Web套用的優勢 2
1.1.2Web 2.0時代的網際網路 3
1.1.3Web開發標準 4
1.1.4認識腳本語言 5
1.1.5了解HTTP協定5
1.2動態網站開發所需的Web構件10
1.2.1客戶端瀏覽器 10
1.2.2超文本標記語言HTML 12
1.2.3層疊樣式表CSS13
1.2.4客戶端腳本程式語言JavaScript 13
1.2.5Web伺服器 14
1.2.6伺服器端程式語言 16
1.2.7資料庫管理系統 16
1.3幾種主流的Web應用程式平台17
1.3.1Web應用程式開發平台對比分析 18
1.3.2動態網站開發平台技術比較 19
1.4Web的工作原理 19
1.4.1情景1:伺服器不帶應用程式伺服器和資料庫 19
1.4.2情景2:帶應用程式伺服器的Web伺服器 21
1.4.3情景3:瀏覽器訪問伺服器端的資料庫21
1.5LAMP網站開發組合概述 22
1.5.1Linux作業系統 22
1.5.2Web伺服器Apache 23
1.5.3MySQL資料庫管理系統 24
1.5.4PHP後台腳本程式語言 24
1.5.5LAMP發展趨勢25
第2章從搭建你的PHP開發環境開始 27
2.1幾種常見的PHP環境安裝方式 27
2.1.1Linux系統下原始碼包方式安裝環境 27
2.1.2在Windows系統上安裝Web工作環境 28
2.1.3搭建學習型的PHP工作環境 28
2.2環境安裝對作業系統的選擇 29
2.2.1選擇網站運營的作業系統 29
2.2.2選擇網站開發的作業系統 29
2.3安裝集成PHP開發環境 30
2.3.1安裝前準備 30
2.3.2安裝步驟 30
2.3.3環境測試 33
第3章PHP的基本語法 36
3.1PHP在Web開發中的套用 36
3.1.1就從認識PHP開始吧 36
3.1.2PHP都能做什麼 37
3.2第一個PHP腳本程式 39
3.3PHP語言標記 42
3.3.1將PHP代碼嵌入HTML中的位置 43
3.3.2解讀開始和結束標記 44
3.4指令分隔設定“分號” 45
3.5程式注釋 45
3.6在程式中使用空白的處理 47
3.7變數 48
3.7.1變數的聲明 48
3.7.2變數的命名 49
3.7.3可變變數 51
3.7.4變數的引用賦值 51
3.8變數的類型 52
3.8.1類型介紹 52
3.8.2布爾型(boolean) 53
3.8.3整型(integer) 54
3.8.4浮點型(float或double) 55
3.8.5字元串(string) 55
3.8.6數組(array) 57
3.8.7對象(object)58
3.8.8資源類型(resource) 58
3.8.9NULL類型 59
3.8.10偽類型介紹 59
3.9數據類型之間相互轉換 60
3.9.1自動類型轉換 60
3.9.2強制類型轉換 61
3.9.3類型轉換細節 62
3.10常量 62
3.10.1常量的定義和使用62
3.10.2常量和變數 63
3.11PHP中的運算符63
3.11.1算術運算符 64
3.11.2字元串運算符66
3.11.3賦值運算符 67
3.11.4比較運算符 68
3.11.5邏輯運算符 69
3.11.6位運算符70
3.11.7其他運算符 73
3.11.8運算符的優先權 74
3.12表達式75
第4章PHP的流程控制結構 76
4.1分支結構 76
4.1.1單一條件分支結構(if)77
4.1.2雙向條件分支結構(else從句) 78
4.1.3多向條件分支結構(elseif子句) 79
4.1.4多向條件分支結構(switch語句) 80
4.1.5巢狀條件分支結構 82
4.2循環結構 83
4.2.1while語句 84
4.2.2do…while循環 86
4.2.3for語句 87
4.3特殊的流程控制語句 90
4.3.1break語句90
4.3.2continue語句 91
4.3.3exit語句 91
第5章PHP的函式套用 93
5.1函式的定義 93
5.2自定義函式 94
5.2.1函式的聲明 94
5.2.2函式的調用 96
5.2.3函式的參數 97
5.2.4函式的返回值 98
5.3PHP變數的範圍 100
5.3.1局部變數 100
5.3.2全局變數 101
5.4聲明及套用各種形式的PHP函式 103
5.4.1常規參數的函式 104
5.4.2偽類型參數的函式 104
5.4.3引用參數的函式 105
5.4.4默認參數的函式 106
5.4.5可變個數參數的函式 108
5.4.6回調函式 108
5.5使用自定義函式館 111
第6章PHP中的數組與數據結構 112
6.1數組的分類 112
6.2數組的定義 114
6.2.1直接賦值的方式聲明數組 114
6.2.2使用array()語言結構新建數組 116
6.2.3多維數組的聲明 117
6.3數組的遍歷 119
6.3.1使用for語句循環遍歷數組 120
6.3.2使用foreach語句遍歷數組 122
6.4預定義數組 125
6.4.1伺服器變數:$_SERVER 126
6.4.2環境變數:$_ENV 126
6.4.3URL GET變數:$_GET 126
6.4.4HTTP POST變數:$_POST127
6.4.5request變數:$_REQUEST 128
6.4.6HTTP檔案上傳變數:$_FILES128
6.4.7HTTP Cookies:$_COOKIE129
6.4.8Session變數:$_SESSION129
6.4.9Global變數:$GLOBALS 129
第7章PHP面向對象的程式設計 130
7.1面向對象的介紹 130
7.1.1類和對象之間的關係 131
7.1.2面向對象的程式設計 132
7.2如何抽象一個類 132
7.2.1類的聲明 133
7.2.2成員屬性 133
7.2.3成員方法 134
7.3通過類實例化對象 136
7.3.1實例化對象 136
7.3.2對象中成員的訪問 137
7.3.3特殊的對象引用“$this” 139
7.3.4構造方法與析構方法 141
7.4封裝性 144
7.4.1設定私有成員 144
7.4.2私有成員的訪問 145
7.4.3__set()和__get()方法147
7.5繼承性 151
7.5.1類繼承的套用 152
7.5.2訪問類型控制 153
7.5.3子類中重載父類的方法 155
7.6常見的關鍵字和魔術方法 158
7.6.1final關鍵字的套用 158
7.6.2static關鍵字的使用159
7.6.3const關鍵字 160
7.6.4克隆對象 161
7.6.5類中通用的方法__toString() 162
7.6.6__call()方法的套用 163
7.6.7自動載入類 164
第8章字元串處理 165
8.1字元串的處理介紹 165
8.1.1字元串的處理方式 165
8.1.2字元串類型的特點 166
8.1.3雙引號中變數解析總結 167
8.2常用的字元串輸出函式 167
8.3常用的字元串格式化函式 170
8.3.1去除空格和字元串填補函式 171
8.3.2字元串大小寫的轉換 172
8.3.3和HTML標籤相關的字元串格式化 172
第9章正則表達式 177
9.1正則表達式簡介 177
9.1.1選擇PHP正則表達式的處理函式館 177
9.2正則表達式的語法規則 178
9.2.1定界符 179
9.2.2原子 179
9.2.3元字元 181
9.2.4模式修正符 184
9.3與Perl兼容的正則表達式函式 185
9.3.1字元串的匹配與查找 185
9.3.2字元串的替換 189
9.3.3字元串的分割和連線 194
第10章檔案系統處理 197
10.1檔案系統概述 197
10.1.1檔案類型197
10.1.2檔案的屬性 198
10.2目錄的基本操作201
10.2.1解析目錄路徑201
10.2.2遍歷目錄203
10.2.3統計目錄大小204
10.2.4建立和刪除目錄 205
10.2.5複製目錄206
10.3檔案的基本操作207
10.3.1檔案的打開與關閉207
10.3.2寫入檔案209
10.3.3讀取檔案內容210
10.3.4訪問遠程檔案212
10.3.5移動檔案指針213
10.3.6檔案的鎖定機制 214
10.3.7檔案的一些基本操作函式 217
10.4檔案的上傳與下載 218
10.4.1檔案上傳218
10.4.2處理多個檔案上傳222
10.4.3檔案下載223
第11章PHP動態圖像處理 225
11.1PHP中GD庫的使用 225
11.1.1畫布管理226
11.1.2設定顏色226
11.1.3生成圖像227
11.1.4繪製圖像228
11.1.5在圖像中繪製文字230
11.2PHP圖片處理 232
11.2.1圖片背景管理233
11.2.2圖片縮放234
11.2.3圖片裁剪236
11.2.4添加圖片水印237
11.2.5圖片旋轉和翻轉 238
第12章MySQL資料庫概述 241
12.1資料庫的套用 241
12.1.1資料庫在Web開發中的重要地位242
12.1.2為什麼PHP會選擇MySQL作為自己的黃金搭檔242
12.1.3PHP和MySQL的合作方式 242
12.1.4結構化查詢語言SQL 243
12.2MySQL資料庫的常見操作244
12.2.1MySQL資料庫的連線與關閉244
12.2.2創建新用戶並授權245
12.2.3創建資料庫 245
12.2.4創建數據表 246
12.2.5數據表內容的簡單管理247
第13章MySQL數據表的設計 249
13.1數據表(Table) 249
13.2數據值和列類型250
13.2.1數值類的數據列類型 250
13.2.2字元串類數據列類型 251
13.2.3日期和時間型數據列類型 252
13.2.4NULL值 253
13.2.5類型轉換253
13.3數據欄位屬性 253
13.4數據表對象管理254
13.4.1創建表(CREATE TABLE) 254
13.4.2修改表(ALTER TABLE)256
13.4.3刪除表(DROP TABLE)257
13.5數據表的類型及存儲位置257
13.5.1MyISAM數據表 257
13.5.2InnoDB數據表258
13.5.3如何選擇InnoDB還是MyISAM表類型258
13.6數據表的默認字元集259
13.6.1字元集支持原理 259
13.6.2創建數據對象時修改字元集259
13.7創建索引 260
13.7.1主鍵索引(PRIMARY KEY) 260
13.7.2唯一索引(UNIQUE) 261
13.7.3常規索引(INDEX) 261
第14章SQL語句設計 263
14.1運算元據表中的數據記錄(DML)263
14.1.1使用INSERT語句向數據表中添加數據 263
14.1.2使用UPDATE語句更新數據表中已存在的數據 264
14.1.3使用DELETE語句刪除數據表中不需要的數據記錄 265
14.2通過DQL命令查詢數據表中的數據 266
14.2.1選擇特定的欄位 266
14.2.2使用AS子句為欄位取別名 267
14.2.3DISTINCT關鍵字的使用267
14.2.4在SELECT語句中使用表達式的列 268
14.2.5使用WHERE子句按條件檢索 269
14.2.6根據空值(NULL)確定檢索條件270
14.2.7使用BETWEEN AND進行範圍比較查詢 270
14.2.8使用IN進行範圍比對查詢 271
14.2.9使用LIKE進行模糊查詢271
14.2.10多表查詢(連線查詢) 272
14.2.11嵌套查詢(子查詢) 274
14.2.12使用ORDER BY對查詢結果排序275
14.2.13使用LIMIT限定結果行數 275
14.2.14使用統計函式 276
14.2.15使用GROUP BY對查詢結果分組277
第15章PHP訪問MySQL的擴展函式 279
15.1PHP訪問MySQL資料庫伺服器的流程 279
15.2在PHP腳本中連線MySQL伺服器 281
15.2.1在PHP程式中選擇已創建的資料庫 282
15.2.2執行SQL命令283
15.2.3在PHP腳本中處理SELECT查詢結果集 284
第16章資料庫抽象層PDO 287
16.1PDO所支持的資料庫287
16.2PDO的安裝289
16.3創建PDO對象 290
16.3.1以多種方式調用構造方法 290
16.3.2PDO對象中的成員方法293
16.4使用PDO對象 293
16.4.1調整PDO的行為屬性 293
16.4.2PDO處理PHP程式和資料庫之間的數據類型轉換 294
16.4.3PDO的錯誤處理模式 295
16.4.4使用PDO執行SQL語句295
16.5PDO對預處理語句的支持297
16.5.1了解PDOStatement對象 298
16.5.2準備語句299
16.5.3綁定參數300
16.5.4執行準備好的查詢301
16.5.5獲取數據302
第17章會話控制 306
17.1為什麼要使用會話控制 306
17.2會話跟蹤的方式307
17.3Cookie的套用 308
17.3.1Cookie概述 308
17.3.2向客戶端計算機中設定Cookie 309
17.3.3在PHP腳本中讀取Cookie的資料內容310
17.3.4數組形態的Cookie套用311
17.3.5刪除Cookie 311
17.3.6基於Cookie的用戶登錄模組312
17.4Session的套用 314
17.4.1Session概述 314
17.4.2配置Session 315
17.4.3Session的聲明與使用 316
17.4.4註冊一個會話變數和讀取Session316
17.4.5註銷變數與銷毀Session317
17.5一個簡單的郵件系統實例318
17.5.1為郵件系統準備數據 319
17.5.2編碼實現郵件系統320
17.5.3郵件系統執行說明322
第18章PHP的模板引擎Smarty 324
18.1什麼是模板引擎324
18.2選擇Smarty模板引擎 326
18.3安裝Smarty及初始化配置 327
18.3.1安裝Smarty 327
18.3.2初始化Smarty類庫的默認設定 328
18.3.3第一個Smarty的簡單示例 331
18.4Smarty的基本套用 333
18.4.1PHP程式設計師常用和Smarty相關的操作334
18.4.2模板設計時美工的常用操作335
18.5Smarty模板設計的基本語法 336
18.5.1模板中的注釋336
18.5.2模板中的變數套用336
18.5.3模板中的函式套用339
18.5.4忽略Smarty解析 341
18.6在Smarty模板中的變數套用 341
18.7在Smarty模板中的變數調解器 344
18.7.1變數調解器函式的使用方式344
18.7.2Smarty默認提供的變數調解器 345
18.7.3自定義變數調解器外掛程式347
18.8Smarty模板中自定義函式349
18.8.1為Smarty模板擴充函式外掛程式349
18.8.2為Smarty模板擴充塊函式外掛程式 351
18.9Smarty模板中的內置函式352
18.9.1變數聲明352
18.9.2流程控制353
18.9.3聲明和調用模板函式 355
18.9.4數組遍歷356
18.9.5Smarty提供的其他內置函式361
18.10Smarty的模板繼承特性 362
18.10.1使用{extends}函式實現模板繼承362
18.10.2在子模板中覆蓋父模板中的部分內容區域 363
18.10.3合併子模板和父模板的{block}標籤內容 364
第19章MVC模式與PHP框架366
19.1MVC模式在Web中的套用 366
19.1.1MVC模式的工作原理 366
19.1.2MVC模式的優缺點368
19.2PHP開發框架 369
19.2.1什麼是框架 369
19.2.2為什麼要用框架 370
19.2.3框架和MVC設計模式的關係 370
19.2.4比較流行的PHP框架 371
19.3劃分模組和操作372
19.3.1為項目劃分模組 373
19.3.2為模組設定操作 373
以下內容詳見本書配書光碟:
第20章超輕量級PHP框架
BroPHP 374
第21章B/S結構軟體開發流程 425
第22章需求分析說明書 434
第23章資料庫設計說明書 445
第24章程式設計說明書 461
作者簡介
高洛峰LAMP兄弟連(北京易第優教育諮詢有限公司)教學總監,擁有8年軟體開發工作經驗,6年IT教學工作經驗。曾任多家上市企業技術總監、項目經理、高級軟體工程師等職務,具有紮實的技術功底。資深技術講師,從事IT培訓以來累計授課長達一萬課時以上,培訓數千名學員成功走向IT崗位,具有豐富的IT教學經驗。熟悉掌握UNIX/Linux/Windows等多種作業系統,一直從事PHP、Java、嵌入式、C/C++、Oracle資料庫等技術研發工作。其中,對Web系統軟體開發深有研究,近年來致力於推廣LAMP開源技術平台。
前言
PHP是一種開源免費的開發語言,具有程式開發速度快、運行快、技術本身學習快等快捷性的特點,無疑是當今Web開發中最佳的程式語言。與JSP和ASP相比,PHP具有簡易性、高安全性和執行靈活等優點,使用PHP開發的Web項目,在軟體方面的投資成本較低、運行穩定。因此,現在越來越多的供應商、用戶和企業投資者日益認識到,使用PHP開發的各種商業套用和協作構建各種網路應用程式,變得更加具有競爭力,更加吸引客戶。無論是從性能、質量還是價格上,PHP都將成為企業和政府信息化所必須考慮的開發語言。本書包括的所有內容皆為當今Web項目開發必用的內容,涵蓋了PHP的絕大多數知識點,對於某一方面的介紹再從多角度進行延伸。全部內容圍繞PHP的面向對象思想設計編寫,幫助讀者深刻理解PHP開發技術,一步一步引導讀者從PHP面向過程的開發模式進入到面向對象的開發時代。本書全部技術點以PHP 5最流行的版本為主,詳細地介紹了PHP及與其相關的Web技術,可以幫助讀者在較短的時間內熟悉並掌握比較實用的PHP技術。其中包括PHP面向對象技術、資料庫抽象層PDO和Smarty 3模板引擎、學習型PHP框架BroPHP等主流技術,實用性非常強。本書所涉及的實例全部以特定的套用為基礎,讀者在學習和工作過程中,可以直接套用本書給出的一些獨立模組和編程思想。
本書是暢銷書《細說PHP(第2版)》精要部分的提取,編寫的宗旨是讓讀者能擁有一本PHP方面的學習和開發使用的最好書籍,章節雖然不是很多,但對所羅列出的每個知識點都進行了細化和延伸,並力求講解到位,讓讀者可以輕鬆地讀懂。對於幾乎每個知識點都有對應且詳實的可運行的代碼配套,對所有實例代碼都附有詳細注釋、說明及運行效果圖。另外在每個章節的最後還為讀者安排了大量的和本章知識點配套的授課課件及自測試題(附加在光碟中),能更好地幫助讀者掌握理論知識點,提高實際編程能力,寓學於練。
超強資源配套學習,跟蹤服務幫助讀者提高
在本書所附的DVD光碟中,附書中所有開發實例的原始碼及項目,讀者在開發中可以直接使用。本書部分章節及課後習題、授課課件、附加章節由於書的容量限制,也附加到了光碟中。光碟中還贈送配套的全部教學視頻,總計長達150個小時。通過參考本書再結合視頻教學光碟,可以加快對知識點的掌握,加快學習進度。
為了幫助讀者學習到更多的PHP技術,在兄弟連論壇還可以下載常用的技術手冊、安裝LAMP環境所需要的開源軟體和本書每章後面為讀者安排的大量自測題配套答案。筆者及“LAMP兄弟連”的全體講師和技術人員也會及時回答讀者提問,與讀者進行線上技術交流,並為讀者提供各類技術文章,幫助讀者提高開發水平,解決讀者在開發中遇到的疑難問題。
特別說明
《細說PHP(精要版)》的20到24章是項目開發的實戰所需要的資料,其中第20章是BroPHP框架的使用手冊,第21、22和23章分別是項目開發中必須用到的三個重要項目說明書(需求說明書、資料庫設計說明書和程式設計說明書)。開發中不僅要學習項目的開發流程,更重要的是形成配套的開發文檔。為了便於讀者開發中有可以方便攜帶和查閱的BroPHP框架技術手冊,和可以直接作為模板使用的三種項目說明書,讓讀者只需要根據自己的項目內容,在此模板上修改,就可以完成項目文檔的編寫,所以本書以電子版的形式將這幾章提供給讀者,放在配書光碟中。本書適合讀者
? 接受PHP培訓的學員
? Web開發愛好者
? 網站維護及管理人員
? 初級或專業的網站開發人員
? 大中專院校的教師及培訓中心的講師
? 進行畢業設計和對PHP感興趣的學生
? 從事ASP或JSP而想轉向PHP開發的程式設計師