PHP 7從入門到精通(視頻教學版)(第2版)
內容描述
PHP是一種流行的通用腳本語言,特別適合Web開發。PHP快速、靈活、務實,廣泛運用在大中小型網站的開發上。
本書以零基礎講解為宗旨,以PHP 7為藍本,用實例引導讀者深入學習PHP編程的各項技術及實戰技能。本書還講解PHP與Web、XML、Ajax、MySQL、Zend、ThinkPHP框架等技術的交互方法,方便讀者全面了解PHP 7編程技術。最後還給出兩個實戰案例,提高讀者的項目開發能力。
本書適合任何想學習PHP的人員,無論你是否從事計算機相關行業,是否接觸過PHP,通過本書的學習均可快速、全面地掌握PHP開發方法和技巧。
目錄大綱
目錄
第1章初識PHP 1
1.1 PHP的來龍去脈1
1.1.1 PHP的概念1
1.1.2 PHP的發展歷程2
1.1.3 PHP的優勢2
1.2 PHP能幹什麼3
1.3 PHP 7的新特點4
1.4 PHP常用開發工具6
1.4.1 PHP代碼開發工具6
1.4.2網頁設計工具7
1.4.3文本編輯工具7
1.5高手甜點8
第2章PHP 7服務器環境配置9
2.1 PHP服務器概述9
2.2安裝PHP 7前的準備工作10
2.2.1軟硬件環境10
2.2.2獲取PHP 7安裝資源包10
2.3 PHP 7+IIS服務器安裝配置12
2.3.1 IIS簡介及其安裝12
2.3.2 PHP的安裝13
2.3.3虛擬目錄的設置16
2.4 PHP 7+Apache服務器的環境搭建18
2.4.1 Apache簡介18
2.4.2關閉原有的網站服務器18
2.4.3安裝Apache 19
2.4.4將PHP與Apache建立關聯19
2.5新手的福音—PHP環境的集成軟件21
2.6實戰演練——我的第一個PHP程序23
2.7高手甜點24
第3章PHP的基本語法26
3.1 PHP 7的標記風格26
3.2編碼規範27
3.2.1什麼是編碼規範27
3.2.2 PHP中的編碼規範28
3.3常量29
3.3.1聲明和使用常量30
3.3.2內置常量30
3.4變量32
3.4.1 PHP中的變量聲明32
3.4.2可變變量與變量的引用33
3.4.3變量作用域34
3.4.4變量的銷毀38
3.5數據類型39
3.5.1什麼是類型39
3.5.2整型39
3.5.3浮點型40
3.5.4布爾型40
3.5.5字符串型40
3.5.6數組型41
3.5.7對象型43
3.5.8 NULL型43
3.5.9資源類型44
3.5.10數據類型之間的相互轉換44
3.6 PHP 7的新變化1——整型處理機制的修改45
3.7 PHP 7的新變化2——標量類型的聲明45
3.8運算符47
3.8.1算術運算符47
3.8.2字符串運算符48
3.8.3賦值運算符48
3.8.4比較運算符48
3.8.5邏輯運算符50
3.8.6按位運算符50
3.8.7否定控制運算符51
3.8.8錯誤控制運算符51
3.8.9三元運算符52
3.8.10運算符的優先級和結合規則52
3.9 PHP 7的新變化3——合併運算符和組合運算符53
3.10表達式54
3.11實戰演練—創建二維數組54
3.12高手甜點55
第4章PHP的語言結構57
4.1內置函數57
4.2自定義函數58
4.2.1自定義和調用函數58
4.2.2向函數傳遞參數值59
4.2.3向函數傳遞參數引用59
4.2.4從函數中返回值60
4.2.5對函數的引用61
4.2.6對函數取消引用62
4.3 PHP 7的新變化1——聲明函數返回值的類型62
4.4 PHP 7的新變化2— —新增intdiv()函數63
4.5 PHP 7的新變化3——括號在變量或函數中變化64
4.6 PHP 7的新變化4——參數處理機制的修改65
4.7包含文件66
4.7.1 require和include 66
4.7.2 include_once和require_once 67
4.8流程控制68
4.8.1條件控制結構68
4.8.2循環控制結構72
4.9實戰演練1—條件分支結構綜合應用79
4.10實戰演練2—循環控制結構綜合應用81
4.11高手甜點82
第5章字符串和正則表達式83
5.1字符串的單引號和雙引號83
5.2字符串的連接符85
5.3字符串的基本操作86
5.3.1手動和自動轉義字符串中的字符86
5.3.2計算字符串的長度86
5.3.3字符串單詞統計87
5.3.4清理字符串中的空格88
5.3.5字符串的切分與組合89
5.3.6字符串子串的截取89
5.3.7字符串子串替換91
5.3.8字符串查找91
5.3.9大小寫轉換92
5.4 PHP 7的新變化——字符串處理機制的修改93
5.5什麼是正則表達式94
5.6正則表達式的語法規則94
5.7實戰演練—創建酒店系統在線訂房表99
5.8高手甜點102
第6章PHP數組103
6.1什麼是數組103
6.2數組的類型104
6.2.1數字索引數組104
6.2.2關聯索引數組105
6.3 PHP 7的新變化1——常量數組106
6.4數組構造106
6.4.1一維數組106
6.4.2多維數組107
6.5遍歷數組109
6.5.1遍歷一維數字索引數組109
6.5.2遍歷一維聯合索引數組109
6.5.3遍歷多維數組111
6.6數組排序112
6.6.1一維數組排序112
6.6.2多維數組排序113
6.7字符串與數組的轉換115
6.8向數組中添加和刪除元素115
6.8.1向數組中添加元素115
6.8.2從數組中刪除元素117
6.9查詢數組中的指定元素118
6.10統計數組元素個數120
6.11刪除數組中的重複元素121
6.12調換數組中的鍵值和元素值122
6.13 PHP 7的新變化2——自動創建元素的順序的改變123
6.14 PHP 7的新變化3——list()函數修改數組的改變124
6.15 PHP 7的新變化4——foreach()函數修改數組的改變126
6.16實戰演練—序列化和反序列化128
6.17高手甜點129
第7章時間和日期130
7.1系統時區設置130
7.1.1時區劃分130
7.1.2時區設置131
7.2 PHP日期和時間函數131
7.2.1關於UNIX時間戳131
7.2.2獲取當前時間戳131
7.2.3獲取當前日期和時間132
7.2.4使用時間戳獲取日期信息133
7.2.5檢驗日期的有效性135
7.2.6輸出格式化時間戳的日期和時間136
7.2.7顯示本地化的日期和時間137
7.2.8將日期和時間解析為UNIX時間戳138
7.2.9日期和時間在PHP和MySQL數據格式之間的轉換139
7.3實戰演練1——比較兩個時間的大小139
7.4實戰演練2 ——實現倒計時功能140
7.5高手甜點140
第8章面向對象編程142
8.1類和對象的介紹142
8.2 PHP中類的操作143
8.2.1類的聲明143
8.2.2成員屬性144
8.2.3成員方法144
8.2.4類的實例化144
8.2.5訪問類中的成員屬性和方法145
8.3構造方法和析構方法147
8.4訪問方法149
8.5類的繼承150
8.6高級特性151
8.6.1靜態屬性和方法151
8.6.2 final類和方法152
8.7抽像類和接口153
8.7.1抽像類153
8.7.2接口154
8.8面向對象的多態性156
8.8.1通過繼承實現多態156
8.8.2通過接口實現多態157
8.9 PHP 7的新變化——支持匿名類158
8.10高手甜點159
第9章錯誤處理和異常處理160
9.1常見的錯誤和異常160
9.2錯誤處理163
9.2.1 php.ini中的錯誤處理機制163
9.2.2應用DIE語句調試164
9.2.3自定義錯誤和錯誤觸發器165
9.2.4錯誤記錄168
9.3異常處理169
9.3.1異常的基本處理方法169
9.3.2自定義的異常處理器171
9.3.3處理多個異常172
9.3.4設置頂層異常處理器173
9.4 PHP 7的新變化1——改變了錯誤的報告方式174
9.5 PHP 7的新變化2——清除最後一次錯誤175
9.6實戰演練—處理異常或錯誤175
9.7高手甜點176
第10章PHP與Web頁面交互178
10.1使用動態內容178
10.2表單與PHP 179
10.3表單設計180
10.3.1表單的基本結構180
10.3.2文本框180
10.3.3選項框181
10.3.4單選按鈕183
10.3.5下拉列表184
10.3.6重置按鈕186
10.3.7提交按鈕186
10.4傳遞數據的兩種方法189
10.4.1用POST方式傳遞數據189
10.4.2用GET方式傳遞數據189
10.5 PHP獲取表單傳遞數據的方法190
10.6 PHP對URL傳遞的參數進行編碼190
10.7實戰演練——PHP與Web表單的綜合應用191
10.8高手甜點193
第11章文件與目錄操作194
11.1文件操作194
11.1.1文件數據的寫入194
11.1.2文件數據的讀取197
11.2目錄操作199
11.3文件的上傳203
11.3.1全局變量$_FILES 203
11.3.2文件上傳204
11.4實戰演練—編寫文本類型的訪客計算器206
11.5高手甜點207
第12章圖形圖像處理208
12.1在PHP中加載GD庫208
12.2圖形圖像的典型應用案例210
12.2.1創建一個簡單的圖像210
12.2.2使用GD2函數在照片上添加文字212
12.2.3使用TrueType字體處理中文生成圖片213
12.3 JpGraph庫的使用215
12.3.1 JpGraph的安裝215
12.3.2 JpGraph的配置216
12.4製作圓形統計圖217
11.5實戰演練—製作3D餅形統計圖219
12.6高手甜點220
第13章Cookie和會話管理222
13.1 Cookie的基本操作222
13.1.1什麼是Cookie 222
13.1.2創建Cookie 223
13.1.3讀取Cookie 223
13.1.4刪除Cookie 224
13.2認識Session 226
13.2.1什麼是Session 226
13.2. 2 Session的基本功能226
13.2.3 Cookie與Session 226
13.2.4在Cookie或URL中存儲SessionID 226
13.3會話管理227
13.3.1創建會話227
13.3.2註冊會話變量228
13.3.3使用會話變量228
13.3.4註銷和銷毀會話變量229
13.4實戰演練—會話管理的綜合應用229
13.5高手甜點230
第14章MySQL數據庫基礎232
14.1 Windows平台下安裝與配置MySQL 232
14.1.1安裝MySQL 5.7 232
14.1.2配置MySQL 5.7 236
14.2啟動服務並登錄MySQL數據庫240
14.2.1啟動MySQL服務241
14.2.2登錄MySQL數據庫242
14.2.3配置Path變量243
14.3 MySQL數據庫的基本操作245
14.3.1創建數據庫245
14.3.2查看數據庫245
14.3.3刪除數據庫246
14.3.4選擇數據庫247
14.4 MySQL數據表的基本操作247
14.4.1創建數據表247
14.4.2查看數據表248
14.4 .3修改數據表250
14.4.4刪除數據表251
14.5 MySQL語句的操作251
14.5.1插入記錄251
14.5.2查詢記錄252
14.5.3修改記錄252
14.5.4刪除記錄253
14.6 MySQL數據庫的備份與還原253
14.6.1數據備份253
14.6.2數據還原260
14.7高手甜點262
第15章PHP操作MySQL數據庫263
15.1 PHP訪問MySQL數據庫的一般步驟263
15.2連接數據庫前的準備工作264
15.3訪問數據庫265
15.3.1使用mysqli_connect()函數連接MySQL服務器265
15.3.2使用mysqli_select_db()函數更改默認的數據庫266
15.3.3使用mysqli_close()函數關閉MySQL連接267
15.3.4使用mysqli_query()函數執行SQL語句267
15.3.5獲取查詢結果集中的記錄數268
15.3.6獲取結果集中的一條記錄作為枚舉數組269
15.3.7獲取結果集中的記錄作為關聯數組270
15.3.8獲取結果集中的記錄作為對象270
15.3.9使用mysqli_fetch_array()函數獲取結果集記錄271
15.3.10使用mysqli_free_result()函數釋放資源271
15.4實戰演練1——PHP操作數據庫272
15.5實戰演練2——使用insert語句動態添加用戶信息273
15.6實戰演練3—使用select語句查詢數據信息276
15.7高手甜點277
第16章PDO數據庫抽像類庫279
16.1 PDO概述279
16.2 PDO的安裝280
16.3使用PDO操作MySQL 280
16.3.1連接MySQL數據庫的方法281
16.3 .2使用PDO時的try catch錯誤處理結構281
16.3.3使用PDO執行SQL的選擇語句284
16.3.4使用PDO獲取返回數據的類方法284
16.3.5使用PDO執行SQL的添加、修改語句287
16.3. 6使用PDO執行SQL的刪除語句287
16.4實戰演練—PDO的prepare表述288
16.5高手甜點290
第17章安全加密技術291
17.1使用加密函數291
17.1.1 md5()函數291
17.1.2 crypt()函數292
17.1.3 sha1()函數293
17.2使用加密擴展庫294
17.2.1安裝Mcrypt擴展庫和Mhash擴展庫294
17.2.2使用Mcrypt擴展庫295
17.2.3使用Mhash擴展庫296
17.3高手甜點298
第18章PHP與XML技術299
18.1 XML的概念299
18.2 XML語法基礎301
18.2.1 XML文檔的組成和聲明301
18.2.2 XML元素介紹302
18.2.3實體引用305
18.2.4 XML命名空間305
18.2.5 XML DTD 306
18.2.6使用CDATA標記307
18.3將XML文檔轉換為HTML加以輸出307
18.4在PHP中創建XML文檔308
18.5使用SimpleXML擴展309
18.5.1創建SimpleXMLElement對象309
18.5.2訪問特定節點元素和屬性311
18.5.3添加XML元素和屬性312
18.6實戰演練—動態創建XML文檔313
18.7高手甜點314
第19章PHP與Ajax的綜合應用315
19.1 Ajax概述315
19.1.1什麼是Ajax 315
19.1.2 Ajax的關鍵元素318
19.1.3 CSS與Ajax 319
19.2 Ajax快速入門319
19.2.1全面剖析XMLH TT PRequest對象319
19.2.2發出Ajax請求321
19.2.3處理服務器響應323
19.3在PHP中應用Ajax技術324
19.4高手甜點329
第20章MVC和Smarty模板331
20.1 MVC概述331
20.2什麼是模板引擎332
20.3 Smarty概述333
20.3.1什麼是Smarty 333
20.3.2 Smarty與MVC 333
20.4 Smarty的安裝和配置334
20.4.1 Smarty的下載和安裝334
20.4.2第一個Smarty程序334
20.5 Smarty模板設計335
20.5.1 Smarty模板文件335
20.5.2 Smarty標識336
20.5.3 Smarty變量338
20.5.4 Smarty數組339
20.6 Smarty中的流程控制語句340
20.7高手甜點342
第21章Zend Framework 343
21.1什麼是Zend Framework 343
21.2 Zend Framework的目錄結構344
21.3 Zend Framework的安裝與使用344
21.3.1 Zend Framework的安裝344
21.3.2創建一個新的Zend Framework應用345
21.4 PHP與Zend Framework的基本操作348
21.4.1在Zend Framework應用中創建控制層文件348
21.4.2在Zend Framework的控制層文件中添加一個action 349
21.4.3在Zend Framework中創建佈局350
21.4.4在Zend Framework中的數據庫操作351
21.4.5在Zend Framework中創建表單352
21.5高手甜點354
第22章ThinkPHP框架355
22.1什麼是ThinkPHP框架355
22.2下載和安裝ThinkPHP 5.0框架356
22.3 ThinkPHP 5.0框架的目錄結構358
22.4配置虛擬主機和部署框架359
22.5如何使用ThinkPHP 5.0框架362
22.5.1 URL訪問362
22.5.2入口文件364
22.5.3 ThinkPHP 5.0框架的執行流程365
22.5.4項目開發規範368
22.6 ThinkPHP 5.0的配置369
22.6.1配置目錄369
22.6.2配置格式370
22.7 ThinkPHP的控制器372
22.7.1定義控制器372
22.7.2控制器的初始化375
22.7.3跳轉和重定向376
22.8數據庫的基本操作377
22.8.1連接數據庫377
22.8.2運行SQL操作381
22.9 ThinkPHP的模型382
22.10 ThinkPHP的視圖383
22.11高手甜點385
第23章開發網上商城386
23.1系統功能描述386
23.2系統功能分析387
23.2.1系統功能分析387
23.2.2數據流程和數據庫388
23.3代碼的具體實現391
23.4程序運行402
第24章開發酒店管理系統網站405
24.1網站的需求分析405
24.2數據庫分析406
24.3酒店管理系統的實現408
24.3.1使用Yii框架的沙箱模式建立項目408
24.3.2開始goodone項目編程410
24.3.3構建message系統414
24.3.4構建product系統421
24.3.5構建order系統423
24.3.6構建customer系統424
作者介紹
作者:張工廠
技術總監,技術主攻方向為PHP軟件開發和MySQL數據庫,具有很強的實戰經驗。長期從事PHP、MySQL的外包服務,熟悉流行的電子商務應用規則,熟悉技術應用方案與方向。對PHP、MySQL系統有較為廣泛與深入的認識。出版圖書《PHP5.5從零開始學》《MySQL技術精粹》《PHP+MySQL動態網站開發從入門到精通》等書。