本書是面向PHP初學(xué)者的一本入門教材,作者站在初學(xué)者的角度,以通俗易懂的語言、豐富的圖解、實用的案例,詳細(xì)講解PHP語言的基礎(chǔ)知識。
本書共12章,前11章是知識講解,內(nèi)容包括PHP開篇、PHP語法基礎(chǔ)、函數(shù)、數(shù)組、錯誤處理及調(diào)試、Web前后端數(shù)據(jù)交互、PHP操作MySQL數(shù)據(jù)庫、正則表達(dá)式、文件操作、圖像操作、面向?qū)ο缶幊,每章都設(shè)有動手實踐,用于練習(xí)和鞏固所學(xué)內(nèi)容;第12章是項目實戰(zhàn),綜合運用所學(xué)知識開發(fā)趣PHP網(wǎng)站。
本書既可作為高等教育本、專科院校計算機(jī)相關(guān)專業(yè)的PHP課程教材,也可作為廣大IT人員和編程愛好者的參考書。
1. 黑馬程序員系列教材改版,品質(zhì)保證;
2. 配套教學(xué)視頻、教學(xué)設(shè)計、教學(xué)大綱、教學(xué)PPT、練習(xí)題庫等豐富的資源。
3. 本書將章節(jié)體和案例體有機(jī)結(jié)合,全書分階段進(jìn)行案例講解,鞏固理論知識,強(qiáng)化動手能力。
黑馬程序員,傳智教育旗下高端IT品牌,成立于2006年,它是由中國Java培訓(xùn)先行者張孝祥老師發(fā)起,聯(lián)合全球的中文IT社區(qū)CSDN、中關(guān)村軟件園共同創(chuàng)辦的一家專業(yè)教育機(jī)構(gòu)。辦學(xué)至今,我們一直堅守著為千萬人少走彎路而著書,為中華軟件之崛起而講課的辦學(xué)理念,堅持培養(yǎng)優(yōu)秀軟件應(yīng)用工程師的宏偉目標(biāo),在累計培養(yǎng)的十萬余名學(xué)員中,其中90%的學(xué)員均已在北、上、廣等一線城市高薪就業(yè),特別是黑馬程序員的平均就業(yè)薪資已達(dá)到8K以上。
第 1章 PHP開篇1
1.1 初識PHP1
1.1.1 什么是PHP1
1.1.2 PHP的發(fā)展歷史2
1.1.3 PHP的特點3
1.2 Visual Studio Code編輯器3
1.2.1 Visual Studio Code概述3
1.2.2 下載和安裝Visual Studio Code4
1.2.3 安裝中文語言擴(kuò)展6
1.3 PHP開發(fā)環(huán)境搭建7
1.3.1 Apache的安裝7
1.3.2 PHP的安裝10
1.4 Web服務(wù)器配置14
1.4.1 Apache常用的配置項14
1.4.2 PHP常用的配置項15
1.4.3 虛擬主機(jī)配置15
1.4.4 訪問權(quán)限控制16
1.4.5 分布式配置文件17
1.4.6 目錄瀏覽功能17
1.4.7 自定義錯誤頁面18
1.5 編寫PHP程序18
動手實踐:PHP代碼嵌入HTML20
本章小結(jié)21
課后練習(xí)21
第 2章 PHP語法基礎(chǔ)23
2.1 基本語法23
2.1.1 PHP標(biāo)記23
2.1.2 注釋24
2.1.3 輸出語句25
2.1.4 標(biāo)識符25
2.1.5 關(guān)鍵字25
2.2 變量、常量和表達(dá)式26
2.2.1 變量26
2.2.2 可變變量27
2.2.3 常量27
2.2.4 預(yù)定義常量28
2.2.5 表達(dá)式29
2.3 數(shù)據(jù)類型29
2.3.1 常用的數(shù)據(jù)類型29
2.3.2 數(shù)據(jù)類型檢測32
2.3.3 數(shù)據(jù)類型轉(zhuǎn)換33
2.4 運算符34
2.4.1 算術(shù)運算符34
2.4.2 賦值運算符35
2.4.3 比較運算符35
2.4.4 三元運算符36
2.4.5 邏輯運算符36
2.4.6 遞增 遞減運算符37
2.4.7 字符串拼接運算符37
2.4.8 位運算符37
2.4.9 錯誤控制運算符39
2.4.10 運算符優(yōu)先級39
2.5 流程控制40
2.5.1 分支結(jié)構(gòu)40
2.5.2 循環(huán)結(jié)構(gòu)43
2.5.3 循環(huán)嵌套45
2.5.4 跳轉(zhuǎn)語句46
2.5.5 流程控制替代語句47
2.6 文件包含語句48
2.6.1 include和require48
2.6.2 include_once和require_once50
動手實踐1:表格生成器51
動手實踐2:九九乘法表53
本章小結(jié)54
課后練習(xí)54
第3章 函數(shù)56
3.1 函數(shù)的定義與調(diào)用56
3.1.1 初識函數(shù)56
3.1.2 設(shè)置函數(shù)的參數(shù)57
3.1.3 函數(shù)中變量的作用域58
3.2 函數(shù)的嵌套調(diào)用59
3.2.1 嵌套調(diào)用59
3.2.2 遞歸調(diào)用60
3.3 函數(shù)的高級應(yīng)用61
3.3.1 靜態(tài)變量61
3.3.2 可變函數(shù)61
3.3.3 回調(diào)函數(shù)62
3.3.4 匿名函數(shù)62
3.4 PHP的內(nèi)置函數(shù)63
3.4.1 字符串函數(shù)63
3.4.2 數(shù)學(xué)函數(shù)65
3.4.3 時間和日期函數(shù)66
3.5 PHP手冊的使用67
動手實踐:制作年歷70
本章小結(jié)72
課后練習(xí)72
第4章 數(shù)組74
4.1 初識數(shù)組74
4.2 數(shù)組的基本使用75
4.2.1 定義數(shù)組75
4.2.2 訪問數(shù)組76
4.2.3 遍歷數(shù)組77
4.2.4 刪除數(shù)組78
4.2.5 數(shù)組運算符78
4.3 數(shù)組查找79
4.3.1 順序查找法79
4.3.2 二分查找法80
4.4 數(shù)組排序81
4.4.1 冒泡排序81
4.4.2 選擇排序82
4.4.3 快速排序83
4.4.4 插入排序84
4.5 常用的數(shù)組函數(shù)85
4.5.1 指針操作函數(shù)85
4.5.2 元素操作函數(shù)86
4.5.3 數(shù)組排序函數(shù)86
4.5.4 數(shù)組檢索函數(shù)87
4.5.5 其他數(shù)組函數(shù)87
4.6 數(shù)組與字符串之間的轉(zhuǎn)換88
4.6.1 字符串轉(zhuǎn)換成數(shù)組88
4.6.2 數(shù)組轉(zhuǎn)換成字符串89
動手實踐:找猴王游戲89
本章小結(jié)90
課后練習(xí)90
第5章 錯誤處理及調(diào)試92
5.1 錯誤處理概述92
5.1.1 常見的錯誤類型92
5.1.2 常見的錯誤級別93
5.2 錯誤處理方式94
5.2.1 顯示錯誤報告94
5.2.2 記錄錯誤日志96
5.2.3 手動觸發(fā)錯誤96
5.2.4 自定義錯誤處理函數(shù)97
5.3 Xdebug程序調(diào)試工具98
動手實踐:獲取PHP腳本運行信息100
本章小結(jié)102
課后練習(xí)102
第6章 Web前后端數(shù)據(jù)交互104
6.1 HTTP104
6.1.1 什么是HTTP104
6.1.2 HTTP版本105
6.1.3 請求消息106
6.1.4 查看請求消息109
6.1.5 響應(yīng)消息110
6.1.6 查看響應(yīng)消息112
6.2 表單113
6.2.1 表單的組成113
6.2.2 表單數(shù)據(jù)交互115
6.2.3 表單提交數(shù)組116
6.2.4 HTML特殊字符處理117
6.3 Cookie技術(shù)118
6.3.1 Cookie簡介118
6.3.2 Cookie的使用119
6.3.3 Cookie的保存方式121
6.4 Session技術(shù)121
6.4.1 Session簡介121
6.4.2 Session基本使用122
6.4.3 Session常用的配置123
6.5 cURL擴(kuò)展124
6.5.1 什么是cURL擴(kuò)展124
6.5.2 使用cURL擴(kuò)展發(fā)送請求124
6.6 輸出緩沖126
6.6.1 什么是輸出緩沖126
6.6.2 輸出緩沖函數(shù)128
動手實踐1:用戶登錄與退出129
動手實踐2:Web表單生成器130
本章小結(jié)131
課后練習(xí)131
第7章 PHP操作MySQL數(shù)據(jù)庫133
7.1 什么是MySQL133
7.2 MySQL的安裝和登錄134
7.2.1 安裝MySQL134
7.2.2 登錄MySQL135
7.3 MySQL的使用135
7.3.1 數(shù)據(jù)庫操作136
7.3.2 數(shù)據(jù)表操作136
7.3.3 數(shù)據(jù)操作137
7.4 PHP中的數(shù)據(jù)庫擴(kuò)展138
7.5 MySQLi擴(kuò)展的使用138
7.5.1 開啟MySQLi擴(kuò)展139
7.5.2 MySQLi擴(kuò)展的常用函數(shù)139
7.5.3 連接數(shù)據(jù)庫139
7.5.4 執(zhí)行SQL語句141
7.5.5 處理結(jié)果集141
7.6 預(yù)處理操作143
7.6.1 什么是預(yù)處理143
7.6.2 實現(xiàn)預(yù)處理操作的常用函數(shù)143
動手實踐:許愿墻145
本章小結(jié)146
課后練習(xí)146
第8章 正則表達(dá)式148
8.1 初識正則表達(dá)式148
8.1.1 什么是正則表達(dá)式148
8.1.2 正則表達(dá)式的語法格式149
8.1.3 如何使用正則表達(dá)式149
8.2 元字符150
8.2.1 定位符150
8.2.2 中括號、連字符和反義符150
8.2.3 反斜線151
8.2.4 點字符和限定符152
8.2.5 豎線153
8.2.6 小括號153
8.3 模式修飾符154
8.4 正則表達(dá)式常用函數(shù)155
8.4.1 preg_grep()函數(shù)155
8.4.2 preg_replace()函數(shù)155
8.4.3 preg_split()函數(shù)157
動手實踐:正則表達(dá)式表單驗證158
本章小結(jié)160
課后練習(xí)160
第9章 文件操作161
9.1 文件基本操作161
9.1.1 讀取文件161
9.1.2 寫入文件163
9.1.3 重命名、復(fù)制和刪除文件164
9.1.4 文件類型和屬性165
9.1.5 創(chuàng)建、刪除和遍歷目錄167
9.1.6 路徑解析168
9.2 文件進(jìn)階操作169
9.2.1 文件指針169
9.2.2 目錄句柄172
9.2.3 資源流173
9.2.4 文件上傳174
動手實踐:文件存儲系統(tǒng)175
本章小結(jié)178
課后練習(xí)178
第 10章 圖像操作179
10.1 PHP圖像基礎(chǔ)知識179
10.1.1 GD庫擴(kuò)展179
10.1.2 常見的圖像格式180
10.2 圖像的常見操作181
10.2.1 繪制圖像快速入門181
10.2.2 圖像的基本操作181
10.2.3 繪制基本形狀184
10.2.4 繪制文本186
10.3 圖像的高級處理188
10.3.1 圖像疊加與縮放189
10.3.2 圖像過濾191
動手實踐:在線相冊192
本章小結(jié)193
課后練習(xí)193
第 11章 面向?qū)ο缶幊?95
11.1 初識面向?qū)ο?95
11.1.1 面向過程與面向?qū)ο?96
11.1.2 面向?qū)ο笾械念惻c對象196
11.2 類與對象的使用197
11.2.1 類的定義和實例化197
11.2.2 類成員198
11.2.3 可變類與可變類成員199
11.2.4 訪問控制修飾符199
11.2.5 對象的鏈?zhǔn)秸{(diào)用200
11.2.6 對象的比較200
11.2.7 對象的淺復(fù)制和克隆200
11.3 魔術(shù)方法201
11.3.1 常見的魔術(shù)方法201
11.3.2 構(gòu)造方法202
11.3.3 析構(gòu)方法202
11.4 類常量與靜態(tài)成員204
11.4.1 類常量204
11.4.2 靜態(tài)成員204
11.5 面向?qū)ο笕筇匦?05
11.6 封裝與繼承205
11.6.1 封裝205
11.6.2 繼承206
11.6.3 重寫207
11.6.4 靜態(tài)延遲綁定208
11.6.5 final關(guān)鍵字209
11.7 Trait代碼復(fù)用209
11.7.1 什么是Trait209
11.7.2 解決Trait成員同名問題210
11.7.3 修改Trait中的方法的訪問
控制修飾符210
11.7.4 Trait同名成員的優(yōu)先級211
11.8 抽象類、抽象方法與接口212
11.8.1 抽象類與抽象方法212
11.8.2 接口213
11.9 多態(tài)與類型約束213
11.9.1 多態(tài)214
11.9.2 類型約束214
11.10 設(shè)計模式215
11.10.1 單例模式215
11.10.2 工廠模式216
11.11 MySQLi擴(kuò)展面向?qū)ο笳Z法216
11.11.1 MySQLi擴(kuò)展面向?qū)ο蠡?br />語法216
11.11.2 預(yù)處理和綁定參數(shù)217
動手實踐:Session入庫218
本章小結(jié)220
課后練習(xí)221
第 12章 項目實戰(zhàn)趣PHP
網(wǎng)站222
12.1 項目展示222
12.2 項目開發(fā)說明231
本章小結(jié)232