本書以初學(xué)者為對(duì)象,通過(guò)學(xué)習(xí)筆記的方式,系統(tǒng)地介紹了使用 PHP 語(yǔ)言進(jìn)行程序開發(fā)的各種技術(shù)。全書共 15 章,包括的知識(shí)點(diǎn)有 PHP 集成開發(fā)環(huán)境、變量、常量、操作符與表達(dá)式、流程控制語(yǔ)句、數(shù)組、類、 系統(tǒng)函數(shù)、正則表達(dá)式、表單、Cookie 與 Session、MySQL 數(shù)據(jù)庫(kù)的操作、異常處理、文件操作、圖形圖像、AJAX 技術(shù)、ThinkPHP 框架、商城的開發(fā)。全書內(nèi)容豐富翔實(shí),囊括了初學(xué)者的知識(shí)點(diǎn),語(yǔ)言描述、示例講解通俗易懂,結(jié)合學(xué)習(xí)中經(jīng)常出現(xiàn)的各種問(wèn)題和需要提示的要點(diǎn)與重點(diǎn),用學(xué)習(xí)筆記的形式進(jìn)行了提煉和總結(jié),適合讀者自學(xué)。
22小時(shí)視頻同步課程,手把手教你學(xué)編程
224個(gè)學(xué)習(xí)二維碼,手機(jī)、PC同步學(xué)習(xí)
45個(gè)同步實(shí)例,強(qiáng)化知識(shí)理解
157個(gè)學(xué)習(xí)筆記,輕松化解學(xué)習(xí)障礙
前言:
PHP的英文全稱是 Hypertext Preprocessor(超文本預(yù)處理語(yǔ)言)。它是在服務(wù)器端執(zhí)行的腳本語(yǔ)言。與 C語(yǔ)言類似,PHP是常用的網(wǎng)站編程語(yǔ)言。
PHP語(yǔ)言主要有以下特點(diǎn)。
(1)開源性和免費(fèi)性。由于 PHP解釋器的源代碼是公開的,所以安全系數(shù)較高的網(wǎng)站可以自己更改 PHP的解釋程序。另外,PHP運(yùn)行環(huán)境的使用也是免費(fèi)的。
(2)跨平臺(tái)性強(qiáng)。 PHP的解釋器是開源的,能夠在所有操作系統(tǒng)平臺(tái)上穩(wěn)定運(yùn)行,這使 PHP成為常用的服務(wù)器語(yǔ)言。
(3)快捷性。 PHP是一門非常容易學(xué)習(xí)和使用的語(yǔ)言,它的語(yǔ)法特點(diǎn)類似于 C語(yǔ)言,但沒(méi)有 C語(yǔ)言復(fù)雜的地址操作。而且, PHP語(yǔ)言加入了面向?qū)ο蟮母拍,再加上它具有?jiǎn)捷的語(yǔ)法規(guī)則,使操作編輯非常簡(jiǎn)單,實(shí)用性很強(qiáng)。
(4)面向過(guò)程方法和面向?qū)ο蠓椒ú⒂。?PHP的使用中,不僅可以分別使用面向過(guò)程方法和面向?qū)ο蠓椒ǎ可以將面向過(guò)程方法和面向?qū)ο蠓椒ㄒ黄鸹煊,這是其他編程語(yǔ)言做不到的。
(5)運(yùn)行高效性。由于 PHP運(yùn)行在相應(yīng)的平臺(tái)解釋器上,消耗系統(tǒng)資源比較少,運(yùn)行環(huán)境簡(jiǎn)單,所以效率很高。
(6)數(shù)據(jù)庫(kù)連接廣泛性。 PHP可以與很多主流的數(shù)據(jù)庫(kù)建立連接,如 MySQL、 ODBC、Oracle、AdabasD、S等。PHP是利用編譯的不同函數(shù)與這些數(shù)據(jù)庫(kù)建立連接的, PHPLIB就是常用的為一般事務(wù)提供的基庫(kù)。因此, PHP一直受到廣大編程人員的青睞,是編程初學(xué)者進(jìn)行 Web開發(fā)的程序設(shè)計(jì)語(yǔ)言。
本書內(nèi)容
本書以初學(xué)者為對(duì)象,通過(guò)學(xué)習(xí)筆記的方式,系統(tǒng)地介紹了使用 PHP語(yǔ)言進(jìn)行程序開發(fā)的各種技術(shù)。本書提供了從入門到編程高手所的各類知識(shí),本書共 15章,大體結(jié)構(gòu)如下。
本書特點(diǎn)
- 由淺入深,循序漸進(jìn)。本書以初、中級(jí)程序員為對(duì)象,讓他們先從PHP語(yǔ)言基礎(chǔ)學(xué)起,再學(xué)習(xí)如何使用PHP語(yǔ)言進(jìn)行Web交互開發(fā)及數(shù)據(jù)庫(kù)開發(fā)等高級(jí)技術(shù),后學(xué)習(xí)開發(fā)一個(gè)完整的項(xiàng)目。講解過(guò)程中步驟詳盡,版式新穎,讀者在閱讀時(shí)一目了然,從而快速掌握書中內(nèi)容。
- 教學(xué)視頻,講解詳細(xì)。書中每一章節(jié)均提供聲圖并茂的教學(xué)視頻。這些視頻能夠引導(dǎo)初學(xué)者快速入門,增強(qiáng)進(jìn)一步學(xué)習(xí)的信心,從而快速成為編程高手。
- 實(shí)例典型,輕松易學(xué)。通過(guò)實(shí)例學(xué)習(xí)是非常好的學(xué)習(xí)方式,本書通過(guò)一個(gè)知識(shí)點(diǎn)、一個(gè)實(shí)例、一個(gè)結(jié)果的模式,透徹詳盡地講述了實(shí)際開發(fā)中所需的各類知識(shí)。另外,為了便于讀者閱讀程序代碼,快速學(xué)習(xí)編程技能,書中的關(guān)鍵代碼都提供了相應(yīng)的注釋。
- 學(xué)習(xí)筆記,學(xué)記無(wú)憂。本書根據(jù)需要在各章安排了學(xué)習(xí)筆記欄目,讓讀者可以在學(xué)習(xí)過(guò)程中輕松地理解相關(guān)知識(shí)點(diǎn)及概念,快速掌握個(gè)別技術(shù)的應(yīng)用技巧。
讀者對(duì)象
- 初學(xué)編程的自學(xué)者。
- 編程愛好者。
- 大中專院校的教師和學(xué)生。
- 相關(guān)培訓(xùn)機(jī)構(gòu)的教師和學(xué)員。
- 畢業(yè)設(shè)計(jì)的學(xué)生。
- 初、中級(jí)程序開發(fā)人員。
- 程序測(cè)試及維護(hù)人員。
- 參加實(shí)習(xí)的菜鳥程序員。
讀者服務(wù)
為了方便解決本書疑難問(wèn)題,我們提供了多種服務(wù)方式,并由作者團(tuán)隊(duì)提供在線技術(shù)指導(dǎo)和社區(qū)服務(wù),服務(wù)方式如下。
- 服務(wù)網(wǎng)站:www.mingrisoft.com
- 服務(wù)郵箱:mingrisoft@mingrisoft.com
- 企業(yè) QQ:4006751066
- QQ 群:706013952
●服務(wù)電話:400-67501966、0431-84978981
明日科技是一家管理規(guī)范、研發(fā)能力強(qiáng)的互聯(lián)網(wǎng)公司,同時(shí)從事圖書開發(fā)。人員規(guī)模50人明日的優(yōu)勢(shì):?明日科技很注重員工經(jīng)驗(yàn)交流和開發(fā)經(jīng)驗(yàn)整理、共享,內(nèi)部積累文檔已經(jīng)整理得非常完善,代碼講解非常細(xì)致,目前已經(jīng)出版圖書300多個(gè)品種,占據(jù)主流語(yǔ)言圖書銷售排行的前列。?案例完全來(lái)自本企業(yè)的項(xiàng)目,緊跟時(shí)代腳步,內(nèi)容質(zhì)量上無(wú)可挑剔。?明日科技配套資源豐富,提供從視頻講解到快學(xué)快用的整體配套資源,同時(shí)技術(shù)服務(wù)做的也比較完善。
目 錄
篇? 基礎(chǔ)篇
第 1 章 PHP 起步 1
1.1 搭建 PHP 開發(fā)環(huán)境 1
1.1.1 phpStudy 的下載與安裝 1
1.1.2 PHP 服務(wù)器的啟動(dòng)與停止 . 3
1.1.3 phpStudy 的常用設(shè)置 .. 5
1.2 PhpStorm 的下載與安裝 6
1.2.1 PhpStorm 的下載 6
1.2.2 PhpStorm 的安裝 8
1.3 PhpStorm 的基本操作 . 14
1.3.1 創(chuàng)建 PHP 項(xiàng)目 . 14
1.3.2 打開已有項(xiàng)目 .. 16
1.3.3 在項(xiàng)目中創(chuàng)建文件夾和文件 17
1.4 PhpStorm 的常用設(shè)置 . 21
1.4.1 設(shè)置文件編碼格式 21
1.4.2 其他常用設(shè)置 .. 22
1.5 小結(jié) . 22
第 2 章 PHP 語(yǔ)言基礎(chǔ) 23
2.1 PHP 標(biāo)記風(fēng)格 .. 23
2.2 PHP 注釋的應(yīng)用 24
2.3 PHP 的數(shù)據(jù)類型 26
2.3.1 數(shù)據(jù)類型 26
2.3.2 數(shù)據(jù)類型轉(zhuǎn)換 .. 27
2.3.3 檢測(cè)數(shù)據(jù)類型 .. 29
2.4 PHP 常量 30
2.4.1 定義常量 30
2.4.2 預(yù)定義常量 31
2.5 PHP 變量 32
2.5.1 變量賦值及使用 33
2.5.2 PHP 預(yù)定義變量 35
2.6 PHP 操作符 . 36
2.6.1 算術(shù)操作符 36
2.6.2 字符串操作符 .. 37
2.6.3 賦值操作符 38
2.6.4 遞增或遞減操作符 38
2.6.5 邏輯操作符 39
2.6.6 比較操作符 40
2.6.7 條件操作符 40
2.6.8 操作符的優(yōu)先級(jí) 41
2.7 PHP 表達(dá)式 . 42
2.8 PHP 函數(shù) 43
2.8.1 定義和調(diào)用函數(shù) 43
2.8.2 在函數(shù)間傳遞參數(shù) 44
2.8.3 從函數(shù)中返回值 46
2.8.4 變量作用域 47
2.9 PHP 編碼規(guī)范 .. 48
2.9.1 PSR-1 編碼規(guī)范 48
2.9.2 PSR-2 編碼規(guī)范 49
2.10 小結(jié) 51
第 3 章 流程控制語(yǔ)句 52
3.1 條件控制語(yǔ)句 .. 52
3.1.1 if 語(yǔ)句 52
3.1.2 ifelse 語(yǔ)句 54
3.1.3 elseif 語(yǔ)句 .. 55
3.1.4 switch 語(yǔ)句 56
3.2 循環(huán)控制語(yǔ)句 .. 58
3.2.1 for 循環(huán)語(yǔ)句 58
3.2.2 while 循環(huán)語(yǔ)句 60
3.2.3 dowhile 循環(huán)語(yǔ)句 61
3.3 跳轉(zhuǎn)語(yǔ)句 62
3.3.1 break 語(yǔ)句 . 62
3.3.2 continue 語(yǔ)句 63
3.4 學(xué)習(xí)筆記 64
學(xué)習(xí)筆記一:ifelse 執(zhí)行順序 64
學(xué)習(xí)筆記二:while 循環(huán)語(yǔ)句和 dowhile 循環(huán)語(yǔ)句的區(qū)別 64
3.5 小結(jié) . 65
第 4 章 字符串操作與正則表達(dá)式 66
4.1 字符串的定義方法 66
4.1.1 使用單引號(hào)或雙引號(hào)定義字符串 66
4.1.2 使用定界符定義字符串 67
4.2 字符串操作 . 68
4.2.1 去除字符串首尾空格和特殊字符 68
4.2.2 獲取字符串的長(zhǎng)度 70
4.2.3 截取字符串 73
4.2.4 檢索字符串 76
4.2.5 替換字符串 79
4.2.6 分割字符串、合成字符串 81
4.3 正則表達(dá)式 . 83
4.3.1 正則表達(dá)式簡(jiǎn)介 83
4.3.2 行定位符 83
4.3.3 元字符 .. 84
4.3.4 限定符 .. 84
4.3.5 字符類 .. 85
4.3.6 排除字符 85
4.3.7 選擇字符 85
4.3.8 轉(zhuǎn)義字符 86
4.3.9 分組 . 86
4.4 正則表達(dá)式在 PHP 中的應(yīng)用 86
4.5 學(xué)習(xí)筆記 88
學(xué)習(xí)筆記一:慎用 strlen() 函數(shù)處理中文字符 88
學(xué)習(xí)筆記二:strstr() 函數(shù)和 strpos() 函數(shù)的區(qū)別 89
4.6 小結(jié) . 89
第 5 章 PHP 數(shù)組應(yīng)用 90
5.1 什么是數(shù)組 . 90
5.2 創(chuàng)建數(shù)組 91
5.2.1 使用 array() 函數(shù)創(chuàng)建數(shù)組 91
5.2.2 通過(guò)賦值方式創(chuàng)建數(shù)組 93
5.3 數(shù)組的類型 . 93
5.3.1 數(shù)字索引數(shù)組 .. 93
5.3.2 關(guān)聯(lián)數(shù)組 94
5.4 多維數(shù)組 95
5.5 遍歷數(shù)組 97
5.6 統(tǒng)計(jì)數(shù)組元素個(gè)數(shù) 98
5.7 查詢數(shù)組中的指定元素 99
5.8 獲取數(shù)組中的后一個(gè)元素 102
5.9 向數(shù)組中添加元素 102
5.10 刪除數(shù)組中的重復(fù)元素 103
5.11 其他常用數(shù)組函數(shù) 104
5.11.1 數(shù)組排序函數(shù) 104
5.11.2 數(shù)組計(jì)算函數(shù) 106
5.12 學(xué)習(xí)筆記 . 107
學(xué)習(xí)筆記一:數(shù)組的索引 .. 107
學(xué)習(xí)筆記二:使用 count() 函數(shù)計(jì)算二維數(shù)組的長(zhǎng)度 107
5.13 小結(jié) .. 108
第 6 章 面向?qū)ο蟮某绦蛟O(shè)計(jì) ..109
6.1 面向?qū)ο蟮幕靖拍?109
6.1.1 類的概念 . 109
6.1.2 對(duì)象的概念 109
6.1.3 面向?qū)ο缶幊痰娜筇攸c(diǎn) .. 110
6.2 PHP 與對(duì)象 111
6.2.1 類的定義 ..111
6.2.2 成員方法 ..111
6.2.3 類的實(shí)例化 112
6.2.4 成員變量 . 113
6.2.5 類常量 114
6.2.6 構(gòu)造方法和析構(gòu)方法 115
6.2.7 繼承和多態(tài) 118
6.2.8 $this->和::的使用 122
6.2.9 數(shù)據(jù)隱藏 . 124
6.2.10 靜態(tài)變量(方法) 127
6.3 PHP 對(duì)象的高級(jí)應(yīng)用 128
6.3.1 fifinal 關(guān)鍵字 128
6.3.2 抽象類 129
6.3.3 接口的使用 131
6.3.4 對(duì)象類型檢測(cè) 133
6.3.5 魔術(shù)方法 (__) . 133
6.4 面向?qū)ο蟮膽?yīng)用 . 138
6.5 學(xué)習(xí)筆記 140
學(xué)習(xí)筆記一:類和對(duì)象的關(guān)系 . 140
學(xué)習(xí)筆記二:方法與函數(shù)的區(qū)別 .. 141
6.6 小結(jié) 141
第二篇? 提高篇
第 7 章 PHP 與 Web 頁(yè)面交互142
7.1 Web 工作原理 142
7.1.1 HTTP 協(xié)議 142
7.1.2 Web 數(shù)據(jù)交互過(guò)程 .. 143
7.2 HTML 表單 144
7.2.1 HTML 簡(jiǎn)介 144
7.2.2 HTML 表單結(jié)構(gòu) . 147
7.2.3 表單元素 . 148
7.3 CSS 美化表單頁(yè)面 151
7.3.1 CSS 簡(jiǎn)介 . 151
7.3.2 插入 CSS 樣式表 152
7.3.3 CSS 應(yīng)用實(shí)例 155
7.4 JavaScript 表單驗(yàn)證 158
7.4.1 JavaScript 簡(jiǎn)介 158
7.4.2 調(diào)用 JavaScript 159
7.4.3 用戶注冊(cè)表單驗(yàn)證實(shí)例 . 160
7.5 PHP 獲取表單數(shù)據(jù) 163
7.5.1 獲取 POST 方式提交的表單數(shù)據(jù) .. 164
7.5.2 獲取 GET 方式提交的表單數(shù)據(jù) 165
7.6 學(xué)習(xí)筆記 167
學(xué)習(xí)筆記一:Web 工作原理 167
學(xué)習(xí)筆記二:JavaScript 和 jQuery 168
7.7 小結(jié) 168
第 8 章 Cookie 與 Session169
8.1 Cookie 管理 169
8.1.1 了解 Cookie 169
8.1.2 創(chuàng)建 Cookie 171
8.1.3 讀取 Cookie 172
8.1.4 刪除 Cookie 173
8.1.5 Cookie 的生命周期 .. 174
8.1.6 7 天免登錄功能的實(shí)現(xiàn) .. 174
8.2 Session 管理 180
8.2.1 了解 Session 180
8.2.2 創(chuàng)建會(huì)話 . 181
8.2.3 使用 Session 實(shí)現(xiàn)判斷用戶登錄功能 . 182
8.3 Session 高級(jí)應(yīng)用 185
8.3.1 Session 臨時(shí)文件 185
8.3.2 Session 緩存 186
8.3.3 Session 數(shù)據(jù)庫(kù)存儲(chǔ) . 187
8.4 學(xué)習(xí)筆記 192
學(xué)習(xí)筆記一:Cookie 和 Session 的區(qū)別 192
學(xué)習(xí)筆記二:Cookie 和 Session 的關(guān)系 193
8.5 小結(jié) 193
第 9 章 PHP 操作 MySQL 數(shù)據(jù)庫(kù) .194
9.1 PHP 操作 MySQL 數(shù)據(jù)庫(kù)的方法 194
9.1.1 連接 MySQL 服務(wù)器 194
9.1.2 選擇 MySQL 數(shù)據(jù)庫(kù) 196
9.1.3 執(zhí)行 SQL 語(yǔ)句 197
9.1.4 將結(jié)果集返回到數(shù)組中 . 198
9.1.5 從結(jié)果集中獲取一行作為對(duì)象 202
9.1.6 從結(jié)果集中獲取一行作為枚舉數(shù)組 204
9.1.7 從結(jié)果集中獲取一行作為關(guān)聯(lián)數(shù)組 205
9.1.8 獲取查詢結(jié)果集中的記錄數(shù) 205
9.1.9 釋放內(nèi)存 . 206
9.1.10 關(guān)閉連接 207
9.2 管理 MySQL 數(shù)據(jù)庫(kù)中的數(shù)據(jù) .. 207
9.2.1 添加數(shù)據(jù) . 208
9.2.2 編輯數(shù)據(jù) . 212
9.2.3 刪除數(shù)據(jù) . 217
9.3 學(xué)習(xí)筆記 219
學(xué)習(xí)筆記一:mysqli_fetch_array() 函數(shù)、mysqli_fetch_assoc() 函數(shù)、
mysqli_fetch_row() 函數(shù)和 mysqli_fetch_object() 函數(shù)的區(qū)別 .. 219
學(xué)習(xí)筆記二:mysqli_prepare() 函數(shù)和 mysqli_stmt_prepare() 函數(shù)的區(qū)別 220
9.4 小結(jié) 220
第 10 章 PDO 數(shù)據(jù)庫(kù)抽象層 ..221
10.1 什么是 PDO . 221
10.1.1 PDO 概述 221
10.1.2 PDO 的特點(diǎn) . 222
10.1.3 安裝 PDO 222
10.2 PDO 連接數(shù)據(jù)庫(kù) 223
10.2.1 PDO 構(gòu)造函數(shù) .. 223
10.2.2 DSN 詳解 224
10.3 在 PDO 中執(zhí)行 SQL 語(yǔ)句 . 224
10.4 在 PDO 中獲取結(jié)果集 . 226
10.4.1 fetch() 方法 226
10.4.2 fetchAll() 方法 .. 229
10.4.3 fetchColumn() 方法 231
10.5 在 PDO 中捕獲 SQL 語(yǔ)句中的錯(cuò)誤 .. 232
10.5.1 默認(rèn)模式 233
10.5.2 警告模式 234
10.5.3 異常模式 235
10.6 PDO 中的錯(cuò)誤處理 . 236
10.6.1 errorCode() 方法 236
10.6.2 errorInfo() 方法 . 236
10.7 PDO 中的事務(wù)處理 . 237
10.8 學(xué)習(xí)筆記 . 239
學(xué)習(xí)筆記一:為什么 PDO 能夠防止 SQL 注入 . 239
學(xué)習(xí)筆記二:PDO 類和 PDOStatement 類的關(guān)系 239
10.9 小結(jié) .. 239
第 11 章 文件系統(tǒng) .240
11.1 文件處理 .. 241
11.1.1 打開 / 關(guān)閉文件 241
11.1.2 從文件中讀取數(shù)據(jù) 242
11.1.3 將數(shù)據(jù)寫入文件 249
11.1.4 操作文件 250
11.2 目錄處理 .. 251
11.2.1 打開 / 關(guān)閉目錄 251
11.2.2 瀏覽目錄 252
11.2.3 操作目錄 253
11.3 文件上傳 .. 254
11.3.1 配置 php.ini 文件 254
11.3.2 預(yù)定義變量 $_FILES 255
11.3.3 文件上傳函數(shù) 258
11.3.4 多文件上傳 .. 262
11.4 文件下載 .. 265
11.5 學(xué)習(xí)筆記 .. 268
學(xué)習(xí)筆記一:fifile() 函數(shù)和 fifile_get_contents() 函數(shù)的區(qū)別 268
學(xué)習(xí)筆記二:設(shè)置表單屬性 enctype .. 268
11.6 小結(jié) 268
第 12 章 圖形圖像處理技術(shù) 269
12.1 在 PHP 中加載 GD 庫(kù) .. 269
12.2 GD 庫(kù)的應(yīng)用 270
12.2.1 創(chuàng)建簡(jiǎn)單的圖像 270