基本介紹
- 中文名:PHP 7開發寶典(第4版)
- 作者:[英] 戴維·帕瓦斯(David Powers)
- 譯者:張琦 張楚雄
- 出版時間:2021年1月1日
- 出版社:清華大學出版社
- ISBN:9787302566281
- 定價:128 元
內容簡介,目錄,
內容簡介
《PHP 7開發寶典(第4版)》詳細介紹了如何通過添加反饋表單、創建私人區域讓授權用戶上傳自動調整大小的圖像,或者將所有內容存儲到資料庫中,從而使網站更具動態性。作者David Powers更新了他的權威書籍,介紹了新發布的PHP 7,以及這個版本所帶來的新技術和變化。新的特性包括太空船運算符、空合併運算符、生成器、在list()函式中使用數組便捷語法、數組解引用,以及使用splat運算符進行數組解包。
目錄
第1章 PHP介紹和PHP使用對象 1
1.1 PHP的演進 2
1.2 使用PHP實現頁面動態效果 2
1.3 學習和使用PHP的難易程度 4
1.3.1 複製和貼上本書的PHP代碼 5
1.3.2 PHP的安全性 5
1.4 編寫PHP代碼需要使用的軟體 5
1.5 本章小結 7
第2章 準備使用PHP 9
2.1 檢測網站是否支持PHP 9
2.2 安裝本地測試環境 11
2.3 在Windows上設定PHP開發測試環境 11
2.3.1 設定Windows以顯示檔案擴展名 12
2.3.2 選擇Web伺服器 12
2.3.3 在Windows上安裝一體化軟體安裝包 12
2.4 在macOS上設定PHP開發測試環境 12
2.4.1 安裝MAMP 13
2.4.2 測試和配置MAMP 13
2.5 PHP檔案在Windows和Mac上的存放位置 15
2.6 查看PHP設定 16
2.6.1 使用phpinfo()命令顯示伺服器配置 16
2.6.2 編輯php.ini檔案 18
2.7 後續學習內容 20
第3章 編寫PHP腳本 21
3.1 PHP概況 21
3.1.1 告訴伺服器處理PHP頁面 22
3.1.2 將PHP代碼嵌入網頁 22
3.1.3 將PHP代碼保存在外部檔案中 23
3.1.4 使用變數表示變化的值 23
3.1.5 用分號結束語句 26
3.1.6 注釋腳本 26
3.1.7 使用數組存儲多個變數 27
3.1.8 PHP內置的超級全局數組 29
3.1.9 理解引號的使用 29
3.1.10 根據條件語句做出決策 32
3.1.11 比較運算符 33
3.1.12 使用縮進和空格提高代碼可讀性 34
3.1.13 對重複性任務使用循環 35
3.1.14 使用函式執行預設的任務 35
3.1.15 顯示PHP輸出 36
3.1.16 理解PHP錯誤訊息 38
3.2 本章小結 39
第4章 PHP:快速參考 41
4.1 在已有的網站中使用PHP 41
4.2 PHP中的數據類型 41
4.2.1 檢查變數的數據類型 43
4.2.2 顯式更改變數的數據類型 43
4.2.3 檢查變數是否已定義 44
4.3 使用PHP進行計算 44
4.3.1 算術運算符 44
4.3.2 使用遞增和遞減運算符 45
4.3.3 運算符的優先權 46
4.3.4 組合計算和賦值運算符 46
4.4 字元串連線 46
4.5 你想知道的關於引號的一切 47
4.5.1 PHP處理字元串中的變數的方式 47
4.5.2 在雙引號內使用轉義序列 48
4.5.3 在字元串中嵌入關聯數組元素 48
4.5.4 使用heredoc語法避免轉義引號 49
4.6 創建數組 50
4.6.1 創建索引數組 51
4.6.2 創建關聯數組 51
4.6.3 創建空數組 52
4.6.4 多維數組 52
4.6.5 使用print_r()函式檢查數組 53
4.7 PHP中的邏輯運算 54
4.7.1 顯式布爾值 54
4.7.2 隱式布爾值 54
4.7.3 根據兩個值的比較結果做決策 55
4.7.4 複合條件 56
4.7.5 對決策鏈使用switch語句 56
4.7.6 使用三元運算符 58
4.7.7 使用空合併運算符設定默認值 59
4.8 使用循環重複執行代碼 59
4.8.1 while循環和do…while循環 59
4.8.2 用途多樣的for循環 60
4.8.3 使用foreach循環遍歷數組和對象 61
4.8.4 中斷循環 62
4.9 使用函式模組化代碼 63
4.9.1 向函式傳遞值 63
4.9.2 為參數設定默認值 64
4.9.3 變數的作用域 65
4.9.4 從函式返回值 66
4.9.5 生成器—— 一種不斷產生輸出的特殊類型的函式 66
4.9.6 通過引用傳遞參數 67
4.9.7 接收可變數量參數的函式 68
4.9.8 自定義函式的位置 69
4.10 理解PHP類和對象 69
4.11 為類和函式指定數據類型(可選) 70
4.12 處理錯誤和異常 72
4.13 動態創建新變數 73
4.14 後續內容 74
第5章 使用包含檔案 75
5.1 包含來自外部檔案的代碼 75
5.1.1 PHP包含命令 75
5.1.2 PHP查找包含檔案的位置 76
5.1.3 為包含檔案選擇正確的檔案擴展名 81
5.1.4 創建內容會發生變化的頁面 91
5.1.5 防止包含檔案出錯 100
5.1.6 抑制已部署網站的錯誤訊息 101
5.1.7 不能在PHP包含檔案中使用網站根相對連結 106
5.1.8 選擇獲取包含檔案的位置 107
5.1.9 包含檔案的安全注意事項 108
5.1.10 修改include_path指令 108
5.2 本章回顧 111
第6章 線上表單 113
6.1 PHP從表單收集信息的方式 113
6.1.1 理解post和get的區別 115
6.1.2 使用PHP超級全局數組獲取表單數據 118
6.2 處理和驗證用戶輸入 118
6.2.1 創建可重用的腳本 119
6.2.2 在表單不完整時保留用戶輸入 127
6.2.3 過濾潛在攻擊 129
6.3 傳送電子郵件 131
6.4 處理多項選擇表單元素 141
6.5 本章回顧 150
第7章 使用PHP管理檔案 151
7.1 檢查PHP是否能打開檔案 151
7.1.1 在Windows伺服器根目錄外創建資料夾以便進行本地測試 152
7.1.2 影響檔案訪問的配置設定 153
7.2 讀寫檔案 153
7.2.1 在單個操作中讀取檔案 154
7.2.2 打開和關閉用於讀/寫操作的檔案 158
7.3 探索檔案系統 167
7.3.1 使用scandir()函式檢查資料夾 167
7.3.2 使用FilesystemIterator類檢查資料夾的內容 168
7.3.3 使用RegexIterator限制檔案類型 171
7.4 訪問遠程檔案 175
7.4.1 使用新聞源和其他RSS源 176
7.4.2 使用SimpleXML 177
7.5 創建下載連結 181
7.6 本章回顧 183
第8章 使用數組 185
8.1 修改數組元素 185
8.1.1 PHP解決方案8-1:使用循環修改數組元素 186
8.1.2 PHP解決方案8-2:使用array_walk()函式修改數組元素 188
8.1.3 PHP解決方案8-3:使用array_map()函式修改數組元素 190
8.2 合併數組 193
8.2.1 使用數組並集操作符 193
8.2.2 使用array_merge()和array_merge_recursive()函式 195
8.2.3 將兩個索引數組合併為關聯數組 197
8.2.4 比較數組 197
8.2.5 PHP解決方案8-4:用逗號連線數組 198
8.3 數組排序 201
8.3.1 PHP解決方案8-5:使用宇宙飛船操作符進行自定義排序 203
8.3.2 使用array_multisort()函式進行複雜排序 205
8.3.3 PHP解決方案8-6:使用array_multisort()函式對多維數組排序 206
8.3.4 PHP解決方案8-7:查找數組的所有排列 208
8.4 處理數組數據 210
8.4.1 PHP解決方案8-8:自動構建嵌套列表 210
8.4.2 PHP解決方案8-9:從JSON中提取數據 214
8.5 自動將數組元素分配給變數 217
8.5.1 使用extract()函式 218
8.5.2 使用list() 218
8.5.3 使用list()的數組快捷語法 219
8.5.4 PHP解決方案8-10:使用生成器處理CSV檔案 219
8.6 使用擴張操作符從數組中解包參數 222
8.7 本章回顧 224
第9章 上傳檔案 225
9.1 PHP處理檔案上傳的方式 225
9.1.1 檢查伺服器是否支持上傳 226
9.1.2 向表單添加檔案上傳欄位 227
9.1.3 理解$_FILES數組 228
9.1.4 建立上傳目錄 230
9.2 上傳檔案 230
9.2.1 將臨時檔案轉移到上傳資料夾 231
9.2.2 PHP解決方案9-1:創建基本的檔案上傳腳本 231
9.3 創建PHP檔案上傳類 234
9.3.1 定義PHP類 235
9.3.2 檢查上傳檔案的錯誤 242
9.3.3 修改受保護的屬性 245
9.4 一次上傳多個檔案 252
9.5 使用Upload類 258
9.6 上傳檔案時需要注意的檢查點 258
9.7 本章回顧 259
第10章 生成縮略圖 261
10.1 檢查伺服器的能力 261
10.2 動態處理圖像 262
10.3 上傳時自動調整圖像大小 281
10.3.1 擴展類 281
10.3.2 使用Thumbnail-Upload類 287
10.4 本章回顧 288
第11章 記住用戶的輸入:簡單登錄表單和多頁表單 289
11.1 會話的定義和工作原理 289
11.1.1 創建PHP會話 292
11.1.2 創建和銷毀會話變數 292
11.1.3 銷毀會話 292
11.1.4 重新生成會話ID 293
11.1.5 Headers already sent錯誤 293
11.2 使用會話限制訪問 294
11.2.1 PHP解決方案11-1:一個簡單的會話示例 294
11.2.2 使用基於檔案的身份驗證 299
11.2.3 保護密碼的安全 299
11.3 設定會話的時間限制 321
11.4 在多頁表單之間傳遞信息 324
11.5 本章回顧 331
第12章 資料庫入門 333
12.1 選擇資料庫:MySQL或MariaDB 333
12.2 資料庫存儲數據的原理 334
12.2.1 主鍵的工作原理 335
12.2.2 用主鍵和外鍵連結多個數據表 336
12.2.3 把信息分成小塊 337
12.2.4 設計良好資料庫的標準 337
12.3 使用圖形界面管理MySQL 337
12.4 創建名為phpsols的資料庫 339
12.4.1 MySQL的命名規則 339
12.4.2 使用phpMyAdmin創建新資料庫 340
12.4.3 創建特定於資料庫的用戶賬戶 341
12.4.4 創建資料庫表 344
12.4.5 在表中插入記錄 346
12.4.6 創建用於備份和數據遷移的SQL檔案 350
12.5 在MySQL中選擇正確的數據類型 354
12.5.1 存儲文本 354
12.5.2 存儲數字 355
12.5.3 存儲日期和時間 355
12.5.4 存儲預定義列表 356
12.5.5 存儲二進制數據 356
12.6 本章回顧 356
第13章 使用PHP和SQL連線資料庫 357
13.1 檢查遠程伺服器設定 357
13.2 PHP與資料庫通信的過程 358
13.2.1 使用MySQLi進行連線 359
13.2.2 使用PDO進行連線 359
13.2.3 PHP解決方案13-1:創建可重用的資料庫連線器 360
13.2.4 清理從資料庫獲取的文本內容 363
13.2.5 查詢資料庫並顯示結果 364
13.3 使用SQL與資料庫互動 371
13.3.1 編寫SQL查詢 371
13.3.2 最佳化由SELECT查詢檢索的數據 373
13.4 了解SQL注入的危險性 376
13.5 使用準備好的語句處理用戶輸入 381
13.5.1 在MySQLi中將變數嵌入準備好的語句中 382
13.5.2 在PDO中將變數嵌入準備好的語句中 387
13.6 本章回顧 394
第14章 創建動態圖片庫 397
14.1 不在資料庫中存儲圖像的原因 398
14.2 規劃畫廊 398
14.3 將圖片庫靜態頁面上的元素轉換為PHP 400
14.4 構建動態元素 403
14.4.1 通過查詢字元串傳遞信息 403
14.4.2 創建有多列的表 407
14.4.3 分頁顯示數量較多的記錄 409
14.5 本章回顧 416
第15章 資料庫內容管理 417
15.1 建立內容管理系統 417
15.1.1 創建blog資料庫表 418
15.1.2 創建基本的插入和更新表單 419
15.1.3 插入新記錄 421
15.1.4 連結到更新和刪除頁面 425
15.1.5 更新記錄 429
15.1.6 刪除記錄 439
15.2 4個基本SQL命令的語法 440
15.2.1 SELECT命令 441
15.2.2 INSERT命令 443
15.2.3 UPDATE命令 443
15.2.4 DELETE命令 444
15.3 安全和錯誤訊息 444
15.4 本章回顧 445
第16章 格式化文本和日期 447
16.1 顯示文本摘要 447
16.1.1 提取固定數量的字元 447
16.1.2 在一個完整的單詞上結束摘錄 449
16.1.3 提取第一段檔案 450
16.1.4 顯示段落 450
16.1.5 提取完整的語句 452
16.2 構建日期 456
16.2.1 MySQL處理日期的方式 456
16.2.2 在MySQL中插入日期 460
16.2.3 在PHP中處理日期 466
16.3 本章回顧 481
第17章 從多個表中抽取數據 483
17.1 理解表的關係 483
17.2 將圖片關聯到文章 485
17.2.1 改變現有表的結構 485
17.2.2 在表中插入外鍵 487
17.2.3 從多張表中選擇記錄 493
17.2.4 查詢不包含匹配外鍵的記錄 498
17.2.5 創建智慧型連結 500
17.3 本章回顧 501
第18章 管理多個資料庫表 503
18.1 維護引用完整性 503
18.1.1 支持事務和外鍵約束 504
18.1.2 將記錄插入多個表中 507
18.1.3 創建交叉引用表 508
18.1.4 獲取上傳圖片的檔案名稱 509
18.1.5 修改插入表單以處理多個表 510
18.2 更新和刪除多個表中的記錄 523
18.2.1 更新交叉引用表中的記錄 523
18.2.2 將多個查詢視為事務中的一個塊 526
18.2.3 在刪除記錄時保留引用完整性 534
18.2.4 創建具有外鍵約束的刪除腳本 538
18.2.5 創建沒有外鍵約束的刪除腳本 539
18.3 本章回顧 540
第19章 使用資料庫進行用戶身份驗證 541
19.1 選擇密碼存儲方法 541
19.2 使用散列密碼 542
19.2.1 創建表來存儲用戶的詳細信息 542
19.2.2 在資料庫中註冊新用戶 542
19.3 使用密鑰加密 550
19.3.1 創建用於存儲用戶詳細信息的表 550
19.3.2 註冊新用戶 551
19.3.3 使用雙向加密的用戶身份驗證 553
19.3.4 解密密碼 554
19.4 更新用戶的詳細信息 555
19.5 後續學習 555