本書以初學(xué)者為對象,通過學(xué)習(xí)筆記的方式,系統(tǒng)地介紹了使用 PHP 語言進行程序開發(fā)的各種技術(shù)。全書共 15 章,包括的知識點有 PHP 集成開發(fā)環(huán)境、變量、常量、操作符與表達式、流程控制語句、數(shù)組、類、 系統(tǒng)函數(shù)、正則表達式、表單、Cookie 與 Session、MySQL 數(shù)據(jù)庫的操作、異常處理、文件操作、圖形圖像、AJAX 技術(shù)、ThinkPHP 框架、商城的開發(fā)。全書內(nèi)容豐富翔實,囊括了初學(xué)者的知識點,語言描述、示例講解通俗易懂,結(jié)合學(xué)習(xí)中經(jīng)常出現(xiàn)的各種問題和需要提示的要點與重點,用學(xué)習(xí)筆記的形式進行了提煉和總結(jié),適合讀者自學(xué)。
前言:
PHP的英文全稱是 Hypertext Preprocessor(超文本預(yù)處理語言)。它是在服務(wù)器端執(zhí)行的腳本語言。與 C語言類似,PHP是常用的網(wǎng)站編程語言。
PHP語言主要有以下特點。
(1)開源性和免費性。由于 PHP解釋器的源代碼是公開的,所以安全系數(shù)較高的網(wǎng)站可以自己更改 PHP的解釋程序。另外,PHP運行環(huán)境的使用也是免費的。
(2)跨平臺性強。 PHP的解釋器是開源的,能夠在所有操作系統(tǒng)平臺上穩(wěn)定運行,這使 PHP成為常用的服務(wù)器語言。
(3)快捷性。 PHP是一門非常容易學(xué)習(xí)和使用的語言,它的語法特點類似于 C語言,但沒有 C語言復(fù)雜的地址操作。而且, PHP語言加入了面向?qū)ο蟮母拍睿偌由纤哂泻喗莸恼Z法規(guī)則,使操作編輯非常簡單,實用性很強。
(4)面向過程方法和面向?qū)ο蠓椒ú⒂。?PHP的使用中,不僅可以分別使用面向過程方法和面向?qū)ο蠓椒,還可以將面向過程方法和面向?qū)ο蠓椒ㄒ黄鸹煊,這是其他編程語言做不到的。
(5)運行高效性。由于 PHP運行在相應(yīng)的平臺解釋器上,消耗系統(tǒng)資源比較少,運行環(huán)境簡單,所以效率很高。
(6)數(shù)據(jù)庫連接廣泛性。 PHP可以與很多主流的數(shù)據(jù)庫建立連接,如 MySQL、 ODBC、Oracle、AdabasD、S等。PHP是利用編譯的不同函數(shù)與這些數(shù)據(jù)庫建立連接的, PHPLIB就是常用的為一般事務(wù)提供的基庫。因此, PHP一直受到廣大編程人員的青睞,是編程初學(xué)者進行 Web開發(fā)的程序設(shè)計語言。
本書內(nèi)容
本書以初學(xué)者為對象,通過學(xué)習(xí)筆記的方式,系統(tǒng)地介紹了使用 PHP語言進行程序開發(fā)的各種技術(shù)。本書提供了從入門到編程高手所的各類知識,本書共 15章,大體結(jié)構(gòu)如下。
本書特點
- 由淺入深,循序漸進。本書以初、中級程序員為對象,讓他們先從PHP語言基礎(chǔ)學(xué)起,再學(xué)習(xí)如何使用PHP語言進行Web交互開發(fā)及數(shù)據(jù)庫開發(fā)等高級技術(shù),后學(xué)習(xí)開發(fā)一個完整的項目。講解過程中步驟詳盡,版式新穎,讀者在閱讀時一目了然,從而快速掌握書中內(nèi)容。
- 教學(xué)視頻,講解詳細。書中每一章節(jié)均提供聲圖并茂的教學(xué)視頻。這些視頻能夠引導(dǎo)初學(xué)者快速入門,增強進一步學(xué)習(xí)的信心,從而快速成為編程高手。
- 實例典型,輕松易學(xué)。通過實例學(xué)習(xí)是非常好的學(xué)習(xí)方式,本書通過一個知識點、一個實例、一個結(jié)果的模式,透徹詳盡地講述了實際開發(fā)中所需的各類知識。另外,為了便于讀者閱讀程序代碼,快速學(xué)習(xí)編程技能,書中的關(guān)鍵代碼都提供了相應(yīng)的注釋。
- 學(xué)習(xí)筆記,學(xué)記無憂。本書根據(jù)需要在各章安排了學(xué)習(xí)筆記欄目,讓讀者可以在學(xué)習(xí)過程中輕松地理解相關(guān)知識點及概念,快速掌握個別技術(shù)的應(yīng)用技巧。
讀者對象
- 初學(xué)編程的自學(xué)者。
- 編程愛好者。
- 大中專院校的教師和學(xué)生。
- 相關(guān)培訓(xùn)機構(gòu)的教師和學(xué)員。
- 畢業(yè)設(shè)計的學(xué)生。
- 初、中級程序開發(fā)人員。
- 程序測試及維護人員。
- 參加實習(xí)的菜鳥程序員。
讀者服務(wù)
為了方便解決本書疑難問題,我們提供了多種服務(wù)方式,并由作者團隊提供在線技術(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ā)能力強的互聯(lián)網(wǎng)公司,同時從事圖書開發(fā)。人員規(guī)模50人明日的優(yōu)勢:?明日科技很注重員工經(jīng)驗交流和開發(fā)經(jīng)驗整理、共享,內(nèi)部積累文檔已經(jīng)整理得非常完善,代碼講解非常細致,目前已經(jīng)出版圖書300多個品種,占據(jù)主流語言圖書銷售排行的前列。?案例完全來自本企業(yè)的項目,緊跟時代腳步,內(nèi)容質(zhì)量上無可挑剔。?明日科技配套資源豐富,提供從視頻講解到快學(xué)快用的整體配套資源,同時技術(shù)服務(wù)做的也比較完善。
目 錄
篇? 基礎(chǔ)篇
第 1 章 PHP 起步 1
1.1 搭建 PHP 開發(fā)環(huán)境 1
1.1.1 phpStudy 的下載與安裝 1
1.1.2 PHP 服務(wù)器的啟動與停止 . 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 項目 . 14
1.3.2 打開已有項目 .. 16
1.3.3 在項目中創(chuàng)建文件夾和文件 17
1.4 PhpStorm 的常用設(shè)置 . 21
1.4.1 設(shè)置文件編碼格式 21
1.4.2 其他常用設(shè)置 .. 22
1.5 小結(jié) . 22
第 2 章 PHP 語言基礎(chǔ) 23
2.1 PHP 標記風(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 檢測數(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)先級 41
2.7 PHP 表達式 . 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 章 流程控制語句 52
3.1 條件控制語句 .. 52
3.1.1 if 語句 52
3.1.2 ifelse 語句 54
3.1.3 elseif 語句 .. 55
3.1.4 switch 語句 56
3.2 循環(huán)控制語句 .. 58
3.2.1 for 循環(huán)語句 58
3.2.2 while 循環(huán)語句 60
3.2.3 dowhile 循環(huán)語句 61
3.3 跳轉(zhuǎn)語句 62
3.3.1 break 語句 . 62
3.3.2 continue 語句 63
3.4 學(xué)習(xí)筆記 64
學(xué)習(xí)筆記一:ifelse 執(zhí)行順序 64
學(xué)習(xí)筆記二:while 循環(huán)語句和 dowhile 循環(huán)語句的區(qū)別 64
3.5 小結(jié) . 65
第 4 章 字符串操作與正則表達式 66
4.1 字符串的定義方法 66
4.1.1 使用單引號或雙引號定義字符串 66
4.1.2 使用定界符定義字符串 67
4.2 字符串操作 . 68
4.2.1 去除字符串首尾空格和特殊字符 68
4.2.2 獲取字符串的長度 70
4.2.3 截取字符串 73
4.2.4 檢索字符串 76
4.2.5 替換字符串 79
4.2.6 分割字符串、合成字符串 81
4.3 正則表達式 . 83
4.3.1 正則表達式簡介 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 正則表達式在 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 通過賦值方式創(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)計數(shù)組元素個數(shù) 98
5.7 查詢數(shù)組中的指定元素 99
5.8 獲取數(shù)組中的后一個元素 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ù)組計算函數(shù) 106
5.12 學(xué)習(xí)筆記 . 107
學(xué)習(xí)筆記一:數(shù)組的索引 .. 107
學(xué)習(xí)筆記二:使用 count() 函數(shù)計算二維數(shù)組的長度 107
5.13 小結(jié) .. 108
第 6 章 面向?qū)ο蟮某绦蛟O(shè)計 ..109
6.1 面向?qū)ο蟮幕靖拍?109
6.1.1 類的概念 . 109
6.1.2 對象的概念 109
6.1.3 面向?qū)ο缶幊痰娜筇攸c .. 110
6.2 PHP 與對象 111
6.2.1 類的定義 ..111
6.2.2 成員方法 ..111
6.2.3 類的實例化 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 對象的高級應(yīng)用 128
6.3.1 fifinal 關(guān)鍵字 128
6.3.2 抽象類 129
6.3.3 接口的使用 131
6.3.4 對象類型檢測 133
6.3.5 魔術(shù)方法 (__) . 133
6.4 面向?qū)ο蟮膽?yīng)用 . 138
6.5 學(xué)習(xí)筆記 140
學(xué)習(xí)筆記一:類和對象的關(guān)系 . 140
學(xué)習(xí)筆記二:方法與函數(shù)的區(qū)別 .. 141
6.6 小結(jié) 141
第二篇? 提高篇
第 7 章 PHP 與 Web 頁面交互142
7.1 Web 工作原理 142
7.1.1 HTTP 協(xié)議 142
7.1.2 Web 數(shù)據(jù)交互過程 .. 143
7.2 HTML 表單 144
7.2.1 HTML 簡介 144
7.2.2 HTML 表單結(jié)構(gòu) . 147
7.2.3 表單元素 . 148
7.3 CSS 美化表單頁面 151
7.3.1 CSS 簡介 . 151
7.3.2 插入 CSS 樣式表 152
7.3.3 CSS 應(yīng)用實例 155
7.4 JavaScript 表單驗證 158
7.4.1 JavaScript 簡介 158
7.4.2 調(diào)用 JavaScript 159
7.4.3 用戶注冊表單驗證實例 . 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 天免登錄功能的實現(xiàn) .. 174
8.2 Session 管理 180
8.2.1 了解 Session 180
8.2.2 創(chuàng)建會話 . 181
8.2.3 使用 Session 實現(xiàn)判斷用戶登錄功能 . 182
8.3 Session 高級應(yīng)用 185
8.3.1 Session 臨時文件 185
8.3.2 Session 緩存 186
8.3.3 Session 數(shù)據(jù)庫存儲 . 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ù)庫 .194
9.1 PHP 操作 MySQL 數(shù)據(jù)庫的方法 194
9.1.1 連接 MySQL 服務(wù)器 194
9.1.2 選擇 MySQL 數(shù)據(jù)庫 196
9.1.3 執(zhí)行 SQL 語句 197
9.1.4 將結(jié)果集返回到數(shù)組中 . 198
9.1.5 從結(jié)果集中獲取一行作為對象 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ù)庫中的數(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ù)庫抽象層 ..221
10.1 什么是 PDO . 221
10.1.1 PDO 概述 221
10.1.2 PDO 的特點 . 222
10.1.3 安裝 PDO 222
10.2 PDO 連接數(shù)據(jù)庫 223
10.2.1 PDO 構(gòu)造函數(shù) .. 223
10.2.2 DSN 詳解 224
10.3 在 PDO 中執(zhí)行 SQL 語句 . 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 語句中的錯誤 .. 232
10.5.1 默認模式 233
10.5.2 警告模式 234
10.5.3 異常模式 235
10.6 PDO 中的錯誤處理 . 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 庫 .. 269
12.2 GD 庫的應(yīng)用 270
12.2.1 創(chuàng)建簡單的圖像 270