PHP快速入門及項目實戰

PHP快速入門及項目實戰

本書系統、全面地講解了使用PHP語言進行編程的各種技術,融入了PDO資料庫抽象層、Smarty模板和ThinkPHP框架技術等內容,全書分為4篇18章。本書適合作為零基礎學習人員的學習用書和大中專院校師生的學習教材,也適合作為相關培訓機構的師生和軟體開發人員的參考資料。

基本介紹

圖書簡介,前言,圖書特色,圖書目錄,圖書優點,配套資源,詳細目錄,基礎篇,技能提高篇,高級套用篇,實戰項目篇,

圖書簡介

本書第1篇為基礎篇(第1~8章),主要內容包括:PHP概述,PHP基礎,PHP函式,PHP流程控制語句,PHP數組,Web技術,MySQL資料庫和PHP資料庫編程技術;第2篇為技能提高篇(第9~13章),主要內容包括字元串高級處理,日期和時間處理,圖形圖像處理,檔案目錄處理和面向對象編程;第3篇為高級套用篇(第14~17章),主要內容包括PDO資料庫抽象層,Smarty模板,ThinkPHP框架和PHP的字元編碼;第4篇為實戰項目篇(第18章),通過模擬hao123網站,開發明日導航網站,以此來鞏固所學基礎知識,掌握套用ThinkPHP框架開發Web項目的精髓。
本書提供了大量的自學視頻、源程式、素材,提供了相關的模組庫、案例庫、素材庫、題庫等多種形式的輔助學習資料,還提供迅速及時的微博、QQ、論壇等技術支持。

前言

這是一次入門圖書內容編排上的改革,它縮短了讀者從初學者到達程式設計師的距離,增強了讀者成為程式設計師的信心。希望通過此次改革,能夠探索出一條更快、更好的適合初學者的學習之路。

圖書特色

本書在目錄安排上做了大幅度的調整,打破了傳統目錄的點、線、面一體化的結構布局,讓讀者能夠更快進入項目開發的狀態中去。我們對基礎知識講解的內容進行了精簡,讓讀者提前了解MySQL資料庫,掌握PHP操作MySQL資料庫的方法,熟悉PHP項目開發的基本流程,更快地體會項目開發成功帶來的快感,提高讀者學習的積極性。本書章目錄與傳統章目錄的對比效果如下圖所示。
按照傳統的目錄結構學習,屬於按部就班、逐一學習各項技術,其過程相當枯燥,很難保證讀者有繼續學習下去的積極性。
我們相信新的目錄結構安排不會出現這樣的問題,因為當讀者學習了本書前8章內容之後,就已經體會到成功的快感了,並且能夠在後續的技能提高、高級套用中逐步鞏固基礎知識,學習新技術,最終成為一個合格的Web項目程式設計師。

圖書目錄

本書涵蓋了PHP編程從入門到項目開發所必備的知識,並且分篇進行講解,使讀者的學習更有針對性。
第1篇 基礎篇(第1~8章):主要內容包括PHP概述、PHP基礎、PHP函式、PHP流程控制語句、PHP數組、Web技術、MySQL資料庫和PHP資料庫編程技術。通過本篇的學習,讀者能夠熟練掌握PHP語言編程的基礎知識,並能開發一些小型項目,體會PHP項目開發基本流程,感受成功的喜悅。
第2篇 技能提高篇(第9~13章):主要內容包括字元串高級處理,日期和時間處理,圖形圖像處理,檔案、目錄處理和面向對象編程。通過本篇的學習,讀者可以鞏固所學基礎知識,掌握更多的PHP開發技術。
第3篇 高級套用篇(第14~17章):主要內容包括PDO資料庫抽象層、Smarty模板、ThinkPHP框架和PHP的字元編碼。通過本篇的學習,讀者可以學習到PHP目前最流行、最實用的技術。
第4篇 實戰項目篇(第18章):通過模擬hao123網站,開發明日導航網站,以此來鞏固所學的基礎知識,掌握套用ThinkPHP框架開發Web項目的精髓。書中按照項目功能闡述→系統功能結構設計→資料庫設計→創建項目→項目發布的過程進行介紹,帶領讀者逐步親身體驗開發項目的全過程。

圖書優點

* 技術新穎,講解細緻
全面、細緻地展示PHP的基礎知識,融入最新的PDO資料庫抽象層、Smarty模板和ThinkPHP框架技術等內容,讓讀者能夠真正學習到PHP最流行、最實用的技術。
* 實例豐富,貼近實際
在詳細地講解每個技術點的同時,以大量的示例和實例作為輔助,加深讀者對知識的掌握,提高實踐動手的能力。
* 動手實踐,一體學習
每章都以上機演練和實戰模擬欄目的形式,為讀者提供豐富的實戰練習題目,讓讀者能夠親自動手實踐,體驗編程帶來的成就感,並且將答案放置於配套資源中。另外,讀者還可以參考《PHP經典編程265例》一書,其中對本書上機演練和實戰模擬欄目中所列的命題進行了完美的詮釋。
* 注釋詳盡,視頻講解
為了便於讀者更好地學習和使用本書,書中所有的代碼都提供了詳盡的注釋,而且配套資源中提供了覆蓋全書的語音視頻講解,讀者可以通過視頻快速、直觀、輕鬆地學習。

配套資源

本書提供了內容豐富的配套資源,包括自學視頻、源程式、素材,以及模組庫、案例庫、題庫、素材庫等多項輔助內容,讀者朋友可以通過如下方式獲取。
第1種方式:
(1)登錄清華大學出版社的網站,在網頁右上角的搜尋文本框中輸入本書書名(注意區分大小寫和留出空格),或者輸入本書關鍵字,或者輸入本書ISBN號(注意去掉ISBN號間隔線“-”),單擊“搜尋”按鈕。
(2)找到本書後單擊超連結,在該書的網頁下側單擊“網路資源”超連結,即可下載。
第2種方式:
訪問本書的新浪微博PHPbook,找到配套資源的連結地址進行下載。
讀者對象
? 大中專院校師生 ? 面臨就業的學生
? 零基礎學習人員 ? 相關培訓機構的老師和學員
? 國中級程式開發人員 ? 準備從事軟體開發工作的求職者
? 編程愛好者? 立志編程的其他專業人士

詳細目錄

基礎篇

第1章 PHP概述
( 自學視頻、源程式:配套資源) 2
1.1 如何學好PHP 3
1.1.1 什麼是PHP 3
1.1.2 PHP版本 3
1.1.3 PHP的套用領域 4
1.1.4 PHP5的新特性 4
1.1.5 下載PHP及相關軟體 5
1.1.6 代碼編輯工具 6
1.1.7 下載PHP用戶手冊 7
1.2 環境的搭建 7
1.2.1 AppServ——Windows版PHP
集成化安裝包 7
1.2.2 XAMPP——Linux版PHP
集成化安裝包 10
上機演練 11
1.3 PHP開發環境的關鍵配置
信息 12
1.3.1 Apache伺服器的基本
配置 12
1.3.2 php.ini檔案的基本配置 12
1.4 解決PHP的常見配置問題 14
1.4.1 解決Apache伺服器連線埠
衝突 15
1.4.2 設定PHP的系統當前時間 15
1.4.3 增加PHP擴展模組 15
本章摘要 15
習題 16
實戰模擬 16
第2章 PHP基礎
( 自學視頻、源程式:
配套資源) 18
2.1 PHP工作原理 19
2.2 PHP標記 20
上機演練 20
2.3 代碼注釋 21
2.3.1 使用PHP注釋 21
2.3.2 有效使用注釋 22
2.4 PHP常量 23
2.4.1 聲明和使用常量 23
2.4.2 預定義常量 24
上機演練 25
2.5 PHP變數 26
2.5.1 聲明變數 26
2.5.2 變數賦值 26
2.5.3 變數作用域 28
2.5.4 可變變數 29
2.6 PHP數據類型 30
2.6.1 標量數據類型 31
2.6.2 複合數據類型 34
2.6.3 特殊數據類型 35
2.6.4 轉換數據類型 35
2.6.5 檢測數據類型 36
上機演練 37
2.7 PHP的運算符 37
2.7.1 算術運算符 37
2.7.2 字元串運算符 38
2.7.3 賦值運算符 38
2.7.4 位運算符 39
2.7.5 自增或自減運算符 40
2.7.6 邏輯運算符 41
2.7.7 比較運算符 41
2.7.8 三元運算符 43
2.7.9 運算符的使用規則 43
上機演練 44
本章摘要 45
習題 45
實戰模擬 46
第3章 PHP函式
( 自學視頻、源程式:
配套資源) 47
3.1 PHP函式 48
3.1.1 定義和調用函式 48
3.1.2 在函式間傳遞參數 48
3.1.3 從函式中返回值 50
3.1.4 變數函式 50
3.1.5 對函式的引用 51
3.1.6 取消引用 52
上機演練 52
3.2 PHP變數函式館 52
3.3 PHP字元串函式館 53
上機演練 55
3.4 PHP日期時間函式館 56
上機演練 57
3.5 PHP數學函式館 58
上機演練 59
3.6 PHP檔案系統函式館 60
上機演練 62
3.7 MySQL函式館 63
上機演練 63
本章摘要 64
習題 64
實戰模擬 65
第4章 PHP流程控制語句
( 自學視頻、源程式:
配套資源) 67
4.1 程式的3種控制結構 68
4.1.1 順序結構 68
4.1.2 選擇(分支)結構 68
4.1.3 循環結構 69
4.2 條件控制語句 69
4.2.1 if條件控制語句 69
4.2.2 switch多分支語句 71
上機演練 73
4.3 循環控制語句 73
4.3.1 while循環語句 74
4.3.2 do...while循環語句 75
4.3.3 for循環語句 76
4.3.4 foreach循環語句 77
上機演練 79
4.4 跳轉語句 80
4.4.1 break跳轉語句 80
4.4.2 continue跳轉語句 81
上機演練 82
4.5 包含語句 82
4.5.1 include()語句 82
4.5.2 require()語句 83
4.5.3 include_once()語句 84
4.5.4 require_once()語句 84
4.5.5 include()語句和require()
語句的區別 86
上機演練 87
本章摘要 87
習題 87
實戰模擬 89
第5章 PHP數組
( 自學視頻、源程式:
配套資源) 92
5.1 數組概述 93
5.2 數組類型 93
5.3 聲明數組 94
5.3.1 用戶創建數組 94
5.3.2 函式創建數組 95
5.3.3 創建二維數組 96
5.4 遍歷、輸出數組 96
5.4.1 遍歷數組 96
5.4.2 輸出數組元素 99
5.5 PHP數組函式 100
5.5.1 統計數組元素個數 100
5.5.2 向數組中添加元素 100
5.5.3 獲取數組中最後一個元素 101
5.5.4 刪除數組中重複元素 101
5.5.5 獲取數組中指定元素的
鍵名 102
5.5.6 將數組中元素合成字元串 103
上機演練 103
本章摘要 104
習題 104
實戰模擬 105
第6章 Web技術
( 自學視頻、源程式:
配套資源) 107
6.1 HTTP基礎 108
6.2 變數 110
6.3 伺服器信息 111
上機演練 113
6.4 表單處理 114
6.4.1 創建表單 114
6.4.2 添加表單元素 114
6.4.3 方法 119
6.4.4 對參數進行自動引號處理 121
6.4.5 自處理頁面 121
6.4.6 粘性表單 123
6.4.7 多值參數 124
6.4.8 粘性多值參數 125
6.4.9 檔案上傳 127
6.4.10 表單驗證 130
上機演練 131
6.5 設定回響頭 132
6.5.1 不同的內容類型 133
6.5.2 重定向 134
6.5.3 設定過期時間 134
6.5.4 HTTP認證 134
6.5.5 檔案下載 135
上機演練 135
6.6 維持狀態 137
6.6.1 Cookie 138
6.6.2 會話 140
上機演練 145
本章摘要 147
習題 147
實戰模擬 148
第7章 MySQL資料庫
( 自學視頻、源程式:
配套資源) 150
7.1 MySQL概述 151
7.1.1 MySQL的特點 151
7.1.2 SQL和MySQL 151
7.2 MySQL伺服器的啟動和關閉 152
7.2.1 啟動MySQL伺服器 152
7.2.2 連線MySQL伺服器 153
7.2.3 關閉MySQL伺服器 154
7.3 操作MySQL資料庫 154
7.3.1 創建新資料庫 154
7.3.2 選擇指定資料庫 155
7.3.3 刪除指定資料庫 155
7.4 操作MySQL數據表 156
7.4.1 創建一個表 156
7.4.2 查看數據表結構 157
7.4.3 修改數據表結構 158
7.4.4 重命名數據表 159
7.4.5 刪除指定數據表 160
7.5 操作MySQL數據 161
7.5.1 向數據表中添加數據
(INSERT) 161
7.5.2 更新數據表中的數據
(UPDATE) 162
7.5.3 刪除數據表中的數據
(DELETE) 163
7.5.4 查詢數據表中的數據
(SELECT) 163
7.6 MySQL數據類型 169
7.6.1 數字類型 169
7.6.2 字元串類型 170
7.6.3 日期和時間數據類型 171
7.7 phpMyAdmin管理MySQL
資料庫 171
7.7.1 管理資料庫 171
7.7.2 管理數據表 173
7.7.3 管理數據記錄 175
7.7.4 導入和導出數據 177
本章摘要 180
習題 180
實戰模擬 181
第8章 PHP資料庫編程技術
( 自學視頻、源程式:
配套資源) 182
8.1 PHP操作MySQL資料庫的
步驟 183
8.2 PHP操作MySQL資料庫的
函式 183
8.2.1 mysql_connect()函式連線
MySQL伺服器 183
8.2.2 mysql_select_db()函式選擇
MySQL資料庫 184
8.2.3 mysql_query()函式執行SQL
語句 184
8.2.4 mysql_fetch_array()函式將
結果集返回到數組中 185
8.2.5 mysql_fetch_row()函式從結果集
中獲取一行作為枚舉數組 186
8.2.6 mysql_num_rows()函式獲取查
詢結果集中的記錄數 187
8.2.7 mysql_free_result()函式釋放
記憶體 188
8.2.8 mysql_close()函式關閉連線 189
上機演練 189
8.3 管理MySQL資料庫中的數據 190
8.3.1 向資料庫中添加數據 190
8.3.2 瀏覽資料庫中數據 191
8.3.3 編輯資料庫數據 192
8.3.4 刪除數據 194
8.3.5 批量刪除數據 195
上機演練 197
本章摘要 198
習題 198
實戰模擬 199

技能提高篇

第9章 字元串高級處理
( 自學視頻、源程式:
配套資源) 202
9.1 初識字元串 203
9.2 轉義、還原字元串 203
9.3 截取字元串 204
上機演練 206
9.4 分割、合成字元串 206
上機演練 207
9.5 替換字元串 208
9.5.1 str_ireplace()函式 208
9.5.2 substr_replace()函式 209
上機演練 209
9.6 檢索字元串 210
9.6.1 strstr()函式 210
9.6.2 substr_count()函式 211
上機演練 212
9.7 去掉字元串首尾空格和特殊
字元 212
9.7.1 ltrim()函式 212
9.7.2 rtrim()函式 213
9.7.3 trim()函式 214
上機演練 214
9.8 字元串與HTML轉換 214
上機演練 217
本章摘要 217
習題 218
實戰模擬 218
第10章 日期和時間處理
( 自學視頻、源程式:
配套資源) 220
10.1 PHP的時間觀念 221
10.1.1 在PHP.INI檔案中設定
時區 221
10.1.2 通過date_default_timezone_set
函式設定時區 221
上機演練 221
10.2 UNIX時間戳 222
10.2.1 獲取任意日期、時間的
時間戳 222
10.2.2 獲取當前時間戳 223
10.2.3 日期、時間轉換為UNIX
時間戳 223
上機演練 224
10.3 日期和時間處理 224
10.3.1 格式化日期和時間 225
10.3.2 獲取日期和時間信息 226
10.3.3 檢驗日期和時間的有效性 227
上機演練 228
本章摘要 228
習題 228
實戰模擬 229
第11章 圖形圖像處理
( 自學視頻、源程式:
配套資源) 231
11.1 了解GD2函式館 232
11.2 設定GD2函式館 232
11.3 常用圖像處理技術 233
11.3.1 創建畫布 233
11.3.2 顏色處理 233
11.3.3 繪製文字 234
11.3.4 輸出圖像 237
11.3.5 銷毀圖像 238
上機演練 238
11.4 運用Jpgraph類庫繪製
圖像 239
11.4.1 Jpgraph類庫簡介 239
11.4.2 Jpgraph類庫的安裝 239
11.4.3 柱形圖分析產品月銷
售量 240
11.4.4 折線圖分析網站一天內的
訪問走勢 241
11.4.5 3D餅形圖展示各部門不同
月份的業績 243
上機演練 244
本章摘要 245
習題 245
實戰模擬 246
第12章 檔案、目錄處理
( 自學視頻、源程式:
配套資源) 250
12.1 基本的檔案處理 251
12.1.1 打開一個檔案 251
12.1.2 讀取檔案內容 252
12.1.3 向檔案中寫入數據 257
12.1.4 關閉檔案指針 258
上機演練 258
12.2 目錄操作技術 259
12.2.1 打開指定目錄 259
12.2.2 讀取目錄結構 260
12.2.3 關閉目錄指針 261
上機演練 261
本章摘要 262
習題 262
實戰模擬 263
第13章 面向對象編程
( 自學視頻、源程式:
配套資源) 265
13.1 一切皆是對象 266
13.1.1 什麼是類 266
13.1.2 對象的由來 266
13.1.3 面向對象的特點 267
13.2 類的聲明 267
13.2.1 類的定義 267
13.2.2 成員屬性 268
13.2.3 成員方法 269
上機演練 269
13.3 類的實例化 270
13.3.1 創建對象 270
13.3.2 訪問類中成員 271
13.3.3 特殊的訪問方法——
“$this”和“::” 272
13.3.4 構造方法和析構方法 273
上機演練 274
13.4 面向對象的封裝特性 275
13.4.1 public(公共成員) 275
13.4.2 private(私有成員) 275
13.4.3 protected(保護成員) 276
上機演練 277
13.5 面向對象的繼承特性 278
13.5.1 類的繼承——extends
關鍵字 278
13.5.2 類的繼承——parent::
關鍵字 279
13.5.3 覆蓋父類方法 279
上機演練 280
13.6 抽象類和接口 281
13.6.1 抽象類 281
13.6.2 接口 282
13.7 面向對象的多態性 284
13.7.1 通過繼承實現多態 284
13.7.2 通過接口實現多態 285
13.8 面向對象的關鍵字 286
13.8.1 final關鍵字 286
13.8.2 static關鍵字——聲明靜態類
成員 286
13.8.3 clone關鍵字——克隆
對象 288
上機演練 289
13.9 面向對象的魔術方法 290
13.9.1 __set和__get方法 290
13.9.2 __isset和__unset方法 290
13.9.3 __call方法 291
13.9.4 __toString方法 291
13.9.5 __autoload方法 292
上機演練 293
本章摘要 293
習題 294
實戰模擬 294

高級套用篇

第14章 PDO資料庫抽象層
( 自學視頻、源程式:
配套資源) 298
14.1 什麼是PDO 299
14.1.1 PDO概述 299
14.1.2 PDO特點 299
14.1.3 安裝PDO 299
14.2 PDO連線資料庫 300
14.2.1 PDO構造函式 300
14.2.2 DSN詳解 300
上機演練 301
14.3 PDO中執行SQL語句 302
14.3.1 exec方法 302
14.3.2 query方法 302
14.3.3 預處理語句——prepare和
execute 304
上機演練 305
14.4 PDO中獲取結果集 306
14.4.1 fetch方法 306
14.4.2 fetchAll方法 308
14.4.3 fetchColumn方法 309
上機演練 310
14.5 PDO中捕獲SQL語句中的
錯誤 310
14.5.1 使用默認模式——PDO::
ERRMODE_SILENT 310
14.5.2 使用警告模式——PDO::
ERRMODE_WARNING 312
14.5.3 使用異常模式——PDO::
ERRMODE_EXCEPTION 313
14.6 PDO中錯誤處理 314
14.6.1 errorCode方法 314
14.6.2 errorInfo方法 315
14.7 PDO中事務處理 316
14.8 PDO中存儲過程 318
本章摘要 320
習題 320
實戰模擬 321
第15章 Smarty模板
( 自學視頻、源程式:
配套資源) 322
15.1 走進Smarty模板引擎 323
15.1.1 Smarty模板引擎下載 323
15.1.2 Smarty模板引擎安裝 324
15.1.3 Smarty模板引擎配置 324
15.1.4 Smarty模板的套用 326
上機演練 327
15.2 Smarty模板設計——靜態頁
處理 327
15.2.1 基本語法(注釋、函式和
屬性) 327
15.2.2 Smarty模板設計變數 328
15.2.3 變數調節器 329
15.2.4 內建函式(動態檔案、
模板檔案的包含和流程
控制語句) 330
15.2.5 自定義函式 332
15.2.6 配置檔案 333
上機演練 334
15.3 Smarty程式設計——動態檔案
操作 335
15.3.1 SMARTY_PATH常量 335
15.3.2 Smarty程式設計變數 336
15.3.3 Smarty方法 336
15.3.4 Smarty快取 337
上機演練 339
本章摘要 340
習題 340
實戰模擬 341
第16章 ThinkPHP框架
( 自學視頻、源程式:
配套資源) 343
16.1 ThinkPHP簡介 344
16.1.1 ThinkPHP框架的特點 344
16.1.2 環境要求 344
16.1.3 下載ThinkPHP框架 345
16.2 ThinkPHP架構 346
16.2.1 ThinkPHP的目錄結構 346
16.2.2 自動生成目錄 347
16.2.3 項目目錄部署方案 348
16.2.4 命名規範 348
16.2.5 項目構建流程 349
16.3 ThinkPHP的配置 351
16.3.1 配置格式 352
16.3.2 調試配置 352
16.4 ThinkPHP的控制器 353
16.4.1 控制器 353
16.4.2 跨模組調用 354
16.5 ThinkPHP的模型 358
16.5.1 模型的命名 358
16.5.2 實例化模型 359
16.5.3 屬性訪問 362
16.5.4 連線資料庫 363
16.5.5 創建數據 366
16.5.6 連貫操作 367
16.5.7 CURD操作 368
上機演練 371
16.6 ThinkPHP的視圖 373
16.6.1 模板定義 374
16.6.2 模板賦值 374
16.6.3 指定模板檔案 374
16.6.4 特殊字元串替換 375
上機演練 376
16.7 內置ThinkTemplate模板
引擎 379
上機演練 381
本章摘要 384
習題 384
實戰模擬 385
第17章 PHP的字元編碼
( 自學視頻、源程式:
配套資源) 386
17.1 字元集和編碼 387
17.1.1 ISO8859字元集 387
17.1.2 GB2312與GBK字
符集 387
17.1.3 Unicode字元集 388
17.1.4 UTF-8編碼 388
上機演練 389
17.2 PHP網頁的字元編碼 389
17.2.1 設定編碼格式 390
17.2.2 轉換編碼格式 390
17.2.3 檢測字元串的編碼 392
上機演練 393
17.3 PHP開發中的亂碼問題 393
17.3.1 解決頁面中的亂碼問題 393
17.3.2 資料庫中的字元集編碼
問題 395
17.3.3 避免截取中文字元串時
出現亂碼 396
上機演練 397
本章摘要 397
習題 397
實戰模擬 398

實戰項目篇

第18章 明日導航網(PHP+ThinkPHP+
MySQL實現)
( 自學視頻、源程式:
配套資源) 400
18.1 項目設計思路 401
18.1.1 功能闡述 401
18.1.2 功能結構 401
18.1.3 系統預覽 401
18.2 資料庫設計 403
18.2.1 資料庫設計 403
18.2.2 數據表設計 403
18.2.3 連線資料庫 404
18.3 ThinkPHP架設項目結構 404
18.3.1 下載ThinkPHP框架 404
18.3.2 自動生成項目目錄 405
18.4 明日導航前台頁面設計 406
18.4.1 頁面設計概述 406
18.4.2 控制器的創建 407
18.4.3 視圖中套用到的模板標籤 409
18.4.4 在視圖中創建模板檔案 411
18.5 明日導航後台管理設計 412
18.5.1 後台管理概述 412
18.5.2 通過系統配置檔案存儲
後台登錄數據 413
18.5.3 後台管理架構解析 414
18.5.4 ThinkPHP框架中的分頁
技術 414
18.5.5 後台管理視圖中套用的
模板標籤 415
18.5.6 後台登錄 416
18.5.7 後台管理主頁 417
18.5.8 高級類別管理 419
18.5.9 判斷訪問用戶的許可權 422
18.5.10 操作提示頁面 423
項目發布 424
開發總結 424

相關詞條

熱門詞條

聯絡我們