本書以初學者為對象,通過學習筆記的方式,系統(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)容豐富翔實,囊括了初學者的知識點,語言描述、示例講解通俗易懂,結(jié)合學習中經(jīng)常出現(xiàn)的各種問題和需要提示的要點與重點,用學習筆記的形式進行了提煉和總結(jié),適合讀者自學。
前言:
PHP的英文全稱是 Hypertext Preprocessor(超文本預處理語言)。它是在服務器端執(zhí)行的腳本語言。與 C語言類似,PHP是常用的網(wǎng)站編程語言。
PHP語言主要有以下特點。
(1)開源性和免費性。由于 PHP解釋器的源代碼是公開的,所以安全系數(shù)較高的網(wǎng)站可以自己更改 PHP的解釋程序。另外,PHP運行環(huán)境的使用也是免費的。
(2)跨平臺性強。 PHP的解釋器是開源的,能夠在所有操作系統(tǒng)平臺上穩(wěn)定運行,這使 PHP成為常用的服務器語言。
(3)快捷性。 PHP是一門非常容易學習和使用的語言,它的語法特點類似于 C語言,但沒有 C語言復雜的地址操作。而且, PHP語言加入了面向?qū)ο蟮母拍,再加上它具有簡捷的語法規(guī)則,使操作編輯非常簡單,實用性很強。
(4)面向過程方法和面向?qū)ο蠓椒ú⒂。?PHP的使用中,不僅可以分別使用面向過程方法和面向?qū)ο蠓椒,還可以將面向過程方法和面向?qū)ο蠓椒ㄒ黄鸹煊茫@是其他編程語言做不到的。
(5)運行高效性。由于 PHP運行在相應的平臺解釋器上,消耗系統(tǒng)資源比較少,運行環(huán)境簡單,所以效率很高。
(6)數(shù)據(jù)庫連接廣泛性。 PHP可以與很多主流的數(shù)據(jù)庫建立連接,如 MySQL、 ODBC、Oracle、AdabasD、S等。PHP是利用編譯的不同函數(shù)與這些數(shù)據(jù)庫建立連接的, PHPLIB就是常用的為一般事務提供的基庫。因此, PHP一直受到廣大編程人員的青睞,是編程初學者進行 Web開發(fā)的程序設(shè)計語言。
本書內(nèi)容
本書以初學者為對象,通過學習筆記的方式,系統(tǒng)地介紹了使用 PHP語言進行程序開發(fā)的各種技術(shù)。本書提供了從入門到編程高手所的各類知識,本書共 15章,大體結(jié)構(gòu)如下。
本書特點
- 由淺入深,循序漸進。本書以初、中級程序員為對象,讓他們先從PHP語言基礎(chǔ)學起,再學習如何使用PHP語言進行Web交互開發(fā)及數(shù)據(jù)庫開發(fā)等高級技術(shù),后學習開發(fā)一個完整的項目。講解過程中步驟詳盡,版式新穎,讀者在閱讀時一目了然,從而快速掌握書中內(nèi)容。
- 教學視頻,講解詳細。書中每一章節(jié)均提供聲圖并茂的教學視頻。這些視頻能夠引導初學者快速入門,增強進一步學習的信心,從而快速成為編程高手。
- 實例典型,輕松易學。通過實例學習是非常好的學習方式,本書通過一個知識點、一個實例、一個結(jié)果的模式,透徹詳盡地講述了實際開發(fā)中所需的各類知識。另外,為了便于讀者閱讀程序代碼,快速學習編程技能,書中的關(guān)鍵代碼都提供了相應的注釋。
- 學習筆記,學記無憂。本書根據(jù)需要在各章安排了學習筆記欄目,讓讀者可以在學習過程中輕松地理解相關(guān)知識點及概念,快速掌握個別技術(shù)的應用技巧。
讀者對象
- 初學編程的自學者。
- 編程愛好者。
- 大中專院校的教師和學生。
- 相關(guān)培訓機構(gòu)的教師和學員。
- 畢業(yè)設(shè)計的學生。
- 初、中級程序開發(fā)人員。
- 程序測試及維護人員。
- 參加實習的菜鳥程序員。
讀者服務
為了方便解決本書疑難問題,我們提供了多種服務方式,并由作者團隊提供在線技術(shù)指導和社區(qū)服務,服務方式如下。
- 服務網(wǎng)站:www.mingrisoft.com
- 服務郵箱:mingrisoft@mingrisoft.com
- 企業(yè) QQ:4006751066
- QQ 群:706013952
●服務電話:400-67501966、0431-84978981
目 錄
篇? 基礎(chǔ)篇
第 1 章 PHP 起步 1
1.1 搭建 PHP 開發(fā)環(huán)境 1
1.1.1 phpStudy 的下載與安裝 1
1.1.2 PHP 服務器的啟動與停止 . 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 標記風格 .. 23
2.2 PHP 注釋的應用 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 預定義常量 31
2.5 PHP 變量 32
2.5.1 變量賦值及使用 33
2.5.2 PHP 預定義變量 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 學習筆記 64
學習筆記一:ifelse 執(zhí)行順序 64
學習筆記二: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 中的應用 86
4.5 學習筆記 88
學習筆記一:慎用 strlen() 函數(shù)處理中文字符 88
學習筆記二:strstr() 函數(shù)和 strpos() 函數(shù)的區(qū)別 89
4.6 小結(jié) . 89
第 5 章 PHP 數(shù)組應用 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ù)組中的重復元素 103
5.11 其他常用數(shù)組函數(shù) 104
5.11.1 數(shù)組排序函數(shù) 104
5.11.2 數(shù)組計算函數(shù) 106
5.12 學習筆記 . 107
學習筆記一:數(shù)組的索引 .. 107
學習筆記二:使用 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 對象的高級應用 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ū)ο蟮膽?. 138
6.5 學習筆記 140
學習筆記一:類和對象的關(guān)系 . 140
學習筆記二:方法與函數(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 應用實例 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 學習筆記 167
學習筆記一:Web 工作原理 167
學習筆記二: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 高級應用 185
8.3.1 Session 臨時文件 185
8.3.2 Session 緩存 186
8.3.3 Session 數(shù)據(jù)庫存儲 . 187
8.4 學習筆記 192
學習筆記一:Cookie 和 Session 的區(qū)別 192
學習筆記二: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 服務器 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 學習筆記 219
學習筆記一:mysqli_fetch_array() 函數(shù)、mysqli_fetch_assoc() 函數(shù)、
mysqli_fetch_row() 函數(shù)和 mysqli_fetch_object() 函數(shù)的區(qū)別 .. 219
學習筆記二: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 中的事務處理 . 237
10.8 學習筆記 . 239
學習筆記一:為什么 PDO 能夠防止 SQL 注入 . 239
學習筆記二: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 預定義變量 $_FILES 255
11.3.3 文件上傳函數(shù) 258
11.3.4 多文件上傳 .. 262
11.4 文件下載 .. 265
11.5 學習筆記 .. 268
學習筆記一:fifile() 函數(shù)和 fifile_get_contents() 函數(shù)的區(qū)別 268
學習筆記二:設(shè)置表單屬性 enctype .. 268
11.6 小結(jié) 268
第 12 章 圖形圖像處理技術(shù) 269
12.1 在 PHP 中加載 GD 庫 .. 269
12.2 GD 庫的應用 270
12.2.1 創(chuàng)建簡單的圖像 270