PHP與MySQL程序設計 第5版 ( 簡體 字) |
作者:[美] 弗蘭克·M.克羅曼(Frank M. Kromann) | 類別:1. -> 程式設計 -> 網路編程 -> PHP 2. -> 資料庫 -> MySQL |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 53213 詢問書籍請說出此書號!【缺書】 NT售價: 695 元 |
出版日:8/1/2020 |
頁數:446 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115543592 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書是全面講述PHP 與MySQL 的經典暢銷之作,不但詳細介紹了這兩種技術及其相關工具的核心特性,還講解了如何高效地結合這兩種技術構建出健壯的數據驅動的應用程序。書中大量實際的示例和深入的分析均來自于作者在這方面多年的專業經驗,可用于解決開發者在實際工作中所面臨的各種挑戰。第5 版涵蓋了PHP 7 的新增功能以及新版MySQL 的新特性。 |
目錄:第 1 章 PHP 簡介 1 1.1 PHP 核心特性 1 1.1.1 實用性 1 1.1.2 能力 3 1.1.3 可能性 3 1.1.4 價格 3 1.2 PHP 現狀 4 1.3 PHP 生態系統 5 1.3.1 Drupal 5 1.3.2 WordPress 6 1.3.3 Magento 6 1.3.4 MediaWiki 6 1.3.5 SugarCRM 6 1.3.6 Zend Framework 6 1.4 小結 7 第 2 章 環境配置 8 2.1 選擇主機環境 9 2.1.1 虛擬服務器 9 2.1.2 平臺即服務(PaaS) 9 2.2 安裝先決條件 9 2.2.1 Windows 9 2.2.2 macOS 14 2.2.3 Linux 15 2.2.4 從源代碼安裝 15 2.3 配置PHP 15 2.3.1 Apache httpd.conf 和.htaccess文件 16 2.3.2 在運行腳本中配置 17 2.3.3 PHP 的配置指令 17 2.4 選擇編輯器 23 2.4.1 PHPStorm 23 2.4.2 Atom 23 2.4.3 Sublime Text 23 2.4.4 Visual Studio Code 23 2.4.5 PDT(PHP 開發工具) 23 2.4.6 Zend Studio 23 2.5 小結 24 第3 章 PHP 基礎 25 3.1 在網頁中嵌入PHP 代碼 25 3.1.1 默認語法 25 3.1.2 短標簽 26 3.1.3 嵌入多個代碼塊 26 3.2 在代碼中添加注釋 27 3.2.1 單行C++語法 27 3.2.2 多行注釋 27 3.3 向客戶端輸出數據 28 3.3.1 使用printf()語句進行復雜輸出 29 3.3.2 sprintf()語句 30 3.4 PHP 數據類型 30 3.4.1 標量數據類型 30 3.4.2 復合數據類型 31 3.4.3 數據類型轉換 32 3.4.4 數據類型的自動轉換 33 3.4.5 類型標識符函數 34 3.5 使用變量處理動態數據 34 3.5.1 變量聲明 34 3.5.2 PHP 超級全局變量 35 3.6 使用常量管理固定數據 38 3.7 使用表達式 38 3.7.1 操作數:表達式的輸入 38 3.7.2 操作符:表達式的行為 39 3.8 字符串插值 43 3.8.1 雙引號字符串 43 3.8.2 轉義序列 44 3.8.3 單引號字符串 44 3.8.4 花括號 45 3.8.5 heredoc 45 3.8.6 nowdoc 45 3.9 控制結構 45 3.9.1 條件語句 46 3.9.2 使用循環語句進行重復迭代 47 3.9.3 文件包含語句 51 3.10 小結 52 第4 章 函數 53 4.1 調用函數 53 4.2 創建函數 54 4.2.1 返回多個值 55 4.2.2 按值傳遞參數 55 4.2.3 參數默認值 56 4.2.4 使用類型聲明 57 4.2.5 遞歸函數 57 4.2.6 匿名函數 60 4.2.7 函數庫 60 4.3 小結 61 第5 章 數組 62 5.1 什么是數組 62 5.2 創建數組 63 5.2.1 使用array()創建數組 64 5.2.2 使用list()提取數組 64 5.2.3 用預定義范圍的值填充數組 65 5.2.4 檢測數組 66 5.3 輸出數組 66 5.4 添加和刪除數組元素 67 5.4.1 在數組開頭添加一個值 68 5.4.2 在數組末尾添加一個值 68 5.4.3 在數組開頭刪除一個值 68 5.4.4 在數組末尾刪除一個值 68 5.5 數組元素定位 68 5.5.1 搜索數組 69 5.5.2 提取數組的鍵 70 5.5.3 提取數組的值 70 5.6 提取列 70 5.7 數組遍歷 71 5.7.1 提取數組當前的鍵 71 5.7.2 提取數組當前的值 71 5.7.3 移動數組指針 72 5.7.4 向函數傳遞數組值 72 5.8 確定數組大小和唯一性 73 5.8.1 確定函數大小 73 5.8.2 計算數組值的頻率 74 5.8.3 確定數組中的唯一值 74 5.9 數組排序 75 5.9.1 翻轉數組元素順序 75 5.9.2 鍵與值的互換 75 5.9.3 數組排序 76 5.10 數組的合并、切片、剪接和拆分 79 5.10.1 合并數組 79 5.10.2 遞歸追加數組 80 5.10.3 組合兩個數組 80 5.10.4 數組的切片 81 5.10.5 數組的剪接 81 5.10.6 計算數組交集 82 5.10.7 計算關聯數組的交集 83 5.10.8 計算數組的差 83 5.10.9 計算關聯數組的差 83 5.11 其他有用的數組函數 84 5.11.1 返回一組隨機的鍵 84 5.11.2 重排數組元素 84 5.12 小結 85 第6 章 面向對象的PHP 86 6.1 OOP 的優點 86 6.1.1 封裝 86 6.1.2 繼承 87 6.1.3 多態 87 6.2 OOP 核心概念 87 6.2.1 類 87 6.2.2 對象 88 6.2.3 屬性 88 6.2.4 常量 93 6.2.5 方法 93 6.3 構造函數與析構函數 96 6.3.1 構造函數 96 6.3.2 析構函數 98 6.4 靜態類成員 99 6.5 instanceof 關鍵字 99 6.6 輔助函數 100 6.6.1 確定一個類是否存在 100 6.6.2 確定對象上下文 100 6.6.3 獲取類的方法 100 6.6.4 獲取類的屬性 100 6.6.5 獲取已聲明的類 100 6.6.6 獲取對象屬性 101 6.6.7 確定對象的父類 101 6.6.8 確定對象類型 101 6.6.9 確定對象子類類型 101 6.6.10 確定方法是否存在 101 6.7 自動加載對象 101 6.8 trait 102 6.9 小結 102 第7 章 高級OOP 特性 103 7.1 PHP 不支持的高級OOP 特性 103 7.2 對象克隆 103 7.2.1 克隆示例 104 7.2.2 __clone()方法 105 7.3 繼承 106 7.3.1 類的繼承 106 7.3.2 繼承與構造函數 108 7.3.3 繼承與延遲靜態綁定 109 7.4 接口 110 7.4.1 實現單個接口 111 7.4.2 實現多個接口 112 7.4.3 確定接口是否存在 112 7.5 抽象類 112 7.6 命名空間 114 7.7 小結 116 第8 章 錯誤與異常處理 117 8.1 所有問題都是因你而生 117 8.2 配置PHP 錯誤報告 118 8.2.1 設置錯誤報告等級 118 8.2.2 在瀏覽器上顯示錯誤信息 119 8.2.3 錯誤日志 119 8.2.4 創建和記錄自定義消息 120 8.3 異常處理 120 8.4 PHP 異常處理功能 121 8.4.1 擴展基礎異常類 121 8.4.2 默認構造函數 122 8.4.3 引入finally 代碼塊 122 8.4.4 擴展異常類 123 8.4.5 捕獲多個異常 123 8.4.6 標準PHP 類庫中的異常 125 8.5 PHP 7 中的錯誤處理 125 8.6 小結 126 第9 章 字符串與正則表達式 127 9.1 正則表達式 127 9.2 其他字符串專用函數 133 9.2.1 確定字符串的長度 134 9.2.2 比較兩個字符串 134 9.2.3 處理字符串大小寫 136 9.2.4 字符串與HTML 的轉換 137 9.3 正則表達式函數的替代方式 141 9.3.1 根據預定義字符對字符串進行分詞 141 9.3.2 根據預定義分隔符拆分字符串 142 9.3.3 將數組轉換為字符串 142 9.3.4 解析復雜字符串 143 9.3.5 找出字符串最后出現的位置 143 9.3.6 將所有字符串實例替換為另一個字符串 144 9.3.7 提取部分字符串 144 9.3.8 根據預定義偏移量返回部分字符串 145 9.3.9 確定字符串出現的頻率 145 9.3.10 將字符串的一部分替換為另一個字符串 146 9.3.11 填充和剝離字符串 146 9.3.12 字符與單詞計數 147 9.4 小結 149 第 10 章 處理文件與操作系統 150 10.1 了解文件與目錄 150 10.1.1 目錄分隔符 150 10.1.2 解析目錄路徑 150 10.1.3 計算文件、目錄和磁盤大小 152 10.1.4 確定訪問時間和修改時間 155 10.2 處理文件 156 10.2.1 資源的概念 156 10.2.2 換行符 156 10.2.3 文件結束標志 156 10.2.4 打開與關閉文件 157 10.2.5 從文件讀取 158 10.2.6 將字符串寫入文件 164 10.2.7 移動文件指針 164 10.2.8 讀取目錄內容 165 10.3 運行shell 命令 166 10.3.1 刪除目錄 166 10.3.2 重命名文件 167 10.3.3 觸摸文件 167 10.4 系統級程序執行 167 10.4.1 凈化輸入 167 10.4.2 PHP 程序執行函數 168 10.5 小結 170 第 11 章 第三方程序庫 171 11.1 PEAR 簡介 171 11.1.1 安裝PEAR 171 11.1.2 更新PEAR 172 11.2 使用PEAR 包管理器 172 11.2.1 安裝PEAR 包 172 11.2.2 自動安裝所有依賴 173 11.2.3 查看已經安裝的PEAR 包 173 11.3 Composer 介紹 173 11.3.1 安裝Composer 173 11.3.2 使用Composer 174 11.4 使用C 程序庫擴展PHP 175 11.5 小結 176 第 12 章 日期與時間 177 12.1 UNIX 時間戳 177 12.2 PHP 日期與時間庫 177 12.2.1 驗證日期 178 12.2.2 格式化日期和時間 178 12.2.3 將時間戳轉換為用戶友好的值 181 12.2.4 處理時間戳 181 12.3 日期處理 183 12.3.1 顯示本地日期與時間 183 12.3.2 顯示網頁最近的修改日期 185 12.3.3 確定當前月份的天數 186 12.3.4 確定任意給定月份的天數 186 12.3.5 計算當前日期X 天后的日期 186 12.4 日期和時間類 187 12.4.1 DateTime 構造函數 187 12.4.2 格式化日期 187 12.4.3 在實例化之后設定日期 188 12.4.4 在實例化之后設定時間 188 12.4.5 修改日期和時間 188 12.4.6 計算兩個日期之間的差 189 12.5 小結 189 第 13 章 表單 190 13.1 PHP 和Web 表單 190 13.2 驗證表單數據 192 13.2.1 文件刪除 192 13.2.2 跨站腳本 192 13.2.3 凈化用戶輸入 193 13.2.4 使用Filter 擴展檢驗和凈化數據 195 13.2.5 處理多值表單組件 197 13.3 小結 198 第 14 章 用戶身份驗證 199 14.1 HTTP 身份驗證的概念 199 14.2 使用PHP 進行用戶身份驗證 200 14.2.1 PHP 身份驗證變量 201 14.2.2 有用的函數 201 14.3 PHP 身份驗證方法 202 14.3.1 硬編碼身份驗證 202 14.3.2 基于文件的身份驗證 202 14.3.3 基于數據庫的身份驗證 204 14.4 用戶登錄管理 205 14.4.1 密碼散列 205 14.4.2 一次性URL 和密碼找回 206 14.5 使用OAuth 2.0 208 14.6 小結 209 第 15 章 處理文件上傳 210 15.1 通過HTTP 上傳文件 210 15.2 使用PHP 上傳文件 211 15.2.1 PHP 文件上傳及資源指令 211 15.2.2 $_FILES 數組 212 15.2.3 PHP 文件上傳函數 212 15.2.4 上傳中的錯誤消息 213 15.2.5 一個簡單的例子 214 15.3 小結 215 第 16 章 網絡 216 16.1 DNS、服務與服務器 216 16.1.1 DNS 216 16.1.2 服務 220 16.1.3 建立socket 連接 221 16.2 郵件 223 16.2.1 配置指令 223 16.2.2 使用PHP 腳本發送電子郵件 224 16.3 常見網絡任務 226 16.3.1 ping 一臺服務器 227 16.3.2 創建一個端口掃描程序 227 16.3.3 創建一個子網轉換程序 228 16.4 小結 229 第 17 章 會話處理 230 17.1 什么是會話處理 230 17.2 配置指令 230 17.2.1 管理會話存儲介質 231 17.2.2 設置會話文件路徑 231 17.2.3 自動開啟會話 231 17.2.4 設置會話名稱 231 17.2.5 選擇cookie 或URL 重寫 232 17.2.6 設置會話cookie 的生命周期 232 17.2.7 設置會話cookie 的有效URL路徑 232 17.2.8 設置緩存 233 17.3 使用會話 234 17.3.1 開始一個會話 234 17.3.2 銷毀一個會話 234 17.3.3 設置和提取會話ID 234 17.3.4 創建和刪除會話變量 235 17.3.5 會話數據的編碼和解碼 236 17.4 會話處理實例 237 17.4.1 返回用戶的自動登錄 237 17.4.2 生成近期查看的文檔索引 239 17.5 創建定制的會話處理程序 240 17.5.1 將定制會話函數嵌入PHP 邏輯 241 17.5.2 使用基于MySQL 的定制會話處理程序 241 17.6 小結 243 第 18 章 Web 服務 244 18.1 為什么要使用Web 服務 244 18.2 從API 開始 244 18.3 API 安全性 248 18.4 創建API 249 18.5 小結 253 第 19 章 PHP 安全編程 254 19.1 PHP 安全配置 254 19.2 隱藏配置的詳細信息 256 19.2.1 隱藏Apache 256 19.2.2 隱藏PHP 257 19.3 隱藏敏感信息 257 19.3.1 隱藏文檔根目錄 258 19.3.2 拒絕訪問帶有某種擴展名的文件 258 19.4 數據加密 258 19.4.1 PHP 加密函數 258 19.4.2 使用OpenSSL 加密數據 261 19.5 小結 263 第 20 章 PHP 與jQuery 的集成 264 20.1 Ajax 簡介 264 20.2 jQuery 簡介 265 20.2.1 安裝jQuery 265 20.2.2 一個簡單的例子 265 20.2.3 對事件做出響應 266 20.2.4 jQuery 和DOM 267 20.3 創建用戶名存在性檢驗器 269 20.4 小結 272 第 21 章 MVC 與框架 273 21.1 MVC 簡介 273 21.2 PHP 框架解決方案 274 21.2.1 CakePHP 框架 275 21.2.2 Symfony 框架 275 21.2.3 Zend 框架 275 21.2.4 Phalcon 框架 275 21.2.5 Laravel 框架 276 21.2.6 PHP 框架協作組織(PHP-FIG) 280 21.2.7 PSR-1 和PSR-2 編碼規范 280 21.2.8 PSR-4 自動加載 281 21.3 小結 281 第 22 章 MySQL 簡介 282 22.1 MySQL 為何如此流行 282 22.1.1 靈活性 282 22.1.2 能力 283 22.1.3 靈活的許可證選項 284 22.2 著名的MySQL 用戶 284 22.2.1 Craigslist 284 22.2.2 Twitter 284 22.2.3 GitHub 284 22.2.4 其他著名用戶 284 22.3 MariaDB:MySQL 的一種替代方案 285 22.4 小結 285 第 23 章 安裝與配置MySQL 286 23.1 下載MySQL 286 23.2 安裝MySQL 286 23.2.1 在Linux 上安裝MySQL 287 23.2.2 在Windows 上安裝與配置MySQL 289 23.3 啟動與停止MySQL 290 23.4 配置與優化MySQL 291 23.4.1 mysqld_safe 包裝器 291 23.4.2 MySQL 配置與優化參數 291 23.4.3 my.cnf 文件 294 23.5 配置PHP 與MySQL 一起工作 296 23.5.1 在Linux 上重新配置PHP 296 23.5.2 在Windows 上重新配置PHP 296 23.6 小結 296 第 24 章 MySQL 客戶端程序 297 24.1 命令行工具簡介 297 24.1.1 mysql 客戶端程序 297 24.1.2 mysqladmin 客戶端程序 304 24.1.3 其他有用的客戶端程序 305 24.2 有用的GUI 客戶端程序 307 24.3 phpMyAdmin 307 24.4 小結 308 第 25 章 MySQL 存儲引擎和數據類型 309 25.1 存儲引擎 309 25.1.1 InnoDB 310 25.1.2 MyISAM 310 25.1.3 MEMORY 311 25.1.4 MERGE 312 25.1.5 FEDERATED 312 25.1.6 ARCHIVE 313 25.1.7 CSV 313 25.1.8 EXAMPLE 313 25.1.9 BLACKHOLE 314 25.1.10 存儲引擎FAQ 314 25.2 數據類型和屬性 315 25.2.1 數據類型 315 25.2.2 數據類型屬性 319 25.3 處理數據庫和表 321 25.3.1 處理數據庫 321 25.3.2 處理數據表 322 25.3.3 修改表結構 324 25.3.4 INFORMATION_SCHEMA 325 25.4 小結 327 第 26 章 MySQL 安全性 328 26.1 首先要做的事情 328 26.2 mysqld 守護進程的安全性 329 26.3 MySQL 訪問權限系統 330 26.3.1 權限系統的工作原理 330 26.3.2 訪問控制信息保存的位置 331 26.4 用戶與權限管理 334 26.4.1 創建用戶 334 26.4.2 刪除用戶 335 26.4.3 重命名用戶 335 26.4.4 grant 和revoke 命令 335 26.4.5 查看權限 339 26.5 限制用戶資源 339 26.6 安全的MySQL 連接 340 26.6.1 授權選項 340 26.6.2 SSL 選項 341 26.6.3 啟動MySQL 服務器并啟用SSL 342 26.6.4 啟用客戶端SSL 連接 342 26.6.5 保存SSL 選項到my.cnf 文件 342 26.7 小結 342 第 27 章 PHP 與MySQL 343 27.1 安裝的前提條件 344 27.1.1 在Linux/UNIX 上啟用mysqli 344 27.1.2 在Windows 上啟用mysqli 344 27.1.3 使用MySQL Native Driver 344 27.1.4 管理用戶權限 344 27.1.5 樣本數據 345 27.2 使用mysqli 擴展 345 27.2.1 建立與斷開連接 345 27.2.2 處理連接錯誤 346 27.2.3 提取錯誤信息 346 27.2.4 保存連接信息到單獨的文件中 347 27.2.5 保證連接信息的安全性 348 27.3 與數據庫交互 348 27.3.1 發送查詢到數據庫 348 27.3.2 解析查詢結果 350 27.3.3 確定選取和影響的行 351 27.3.4 使用預處理語句 352 27.4 執行數據庫事務 356 27.4.1 開啟自動提交模式 356 27.4.2 提交事務 356 27.4.3 回滾事務 356 27.5 小結 357 第 28 章 PDO 介紹 358 28.1 另一種數據庫抽象層嗎 358 28.2 使用PDO 359 28.2.1 安裝PDO 360 28.2.2 連接到數據庫服務器并選擇數據庫 360 28.2.3 處理錯誤 362 28.2.4 獲取和設置屬性 363 28.2.5 執行查詢 364 28.2.6 預處理語句介紹 365 28.2.7 提取數據 368 28.2.8 設置綁定列 370 28.2.9 處理事務 371 28.3 小結 372 第 29 章 存儲例程 373 29.1 你應該使用存儲例程嗎 373 29.1.1 存儲例程的優點 373 29.1.2 存儲例程的缺點 373 29.2 MySQL 如何實現存儲例程 374 29.2.1 創建一個存儲例程 374 29.2.2 聲明和設置變量 376 29.2.3 執行存儲例程 377 29.2.4 創建并使用多語句存儲例程 377 29.2.5 在一個存儲例程中調用另一個存儲例程 383 29.2.6 修改存儲例程 384 29.2.7 刪除存儲例程 384 29.2.8 查看存儲例程的狀態 384 29.2.9 查看存儲例程的創建語法 385 29.2.10 條件處理 386 29.3 在Web 應用中集成存儲例程 386 29.3.1 創建雇員獎金接口 386 29.3.2 提取多個行 387 29.4 小結 388 第30 章 MySQL 觸發器 389 30.1 觸發器介紹 389 30.1.1 為什么使用觸發器 389 30.1.2 在事件之前采取行動 390 30.1.3 在事件之后采取行動 390 30.1.4 before 觸發器與after 觸發器 391 30.2 MySQL 觸發器支持 391 30.2.1 創建觸發器 391 30.2.2 查看已有的觸發器 392 30.2.3 修改觸發器 394 30.2.4 刪除觸發器 394 30.3 集成觸發器到Web 應用 395 30.4 小結 396 第31 章 MySQL 視圖 397 31.1 視圖介紹 397 31.2 MySQL 對視圖的支持 398 31.2.1 創建并運行視圖 398 31.2.2 查看視圖信息 402 31.2.3 修改視圖 404 31.2.4 刪除視圖 404 31.2.5 更新視圖 404 31.3 集成視圖到Web 應用 405 31.4 小結 406 第32 章 實用數據庫查詢 407 32.1 樣本數據 407 32.2 創建表格化輸出 407 32.2.1 安裝HTML_Table 408 32.2.2 創建簡單表格 408 32.2.3 創建可讀性更好的行輸出 409 32.2.4 根據數據庫數據創建表格 410 32.3 輸出排序 411 32.4 創建分頁輸出 412 32.5 列出頁碼 414 32.6 使用子查詢查詢多個表 415 32.6.1 使用子查詢進行比較 416 32.6.2 使用子查詢確定存在性 416 32.6.3 使用子查詢進行數據庫維護 417 32.6.4 在PHP 中使用子查詢 417 32.7 使用游標迭代結果集合 418 32.7.1 游標的基礎知識 418 32.7.2 創建游標 418 32.7.3 打開游標 418 32.7.4 使用游標 419 32.7.5 關閉游標 419 32.7.6 在PHP 中使用游標 420 32.8 小結 420 第33 章 索引與搜索 421 33.1 數據庫索引 421 33.1.1 主鍵索引 421 33.1.2 唯一索引 422 33.1.3 普通索引 423 33.1.4 全文索引 424 33.1.5 索引最佳實踐 427 33.2 基于表單的搜索 427 33.2.1 執行簡單搜索 428 33.2.2 擴展搜索功能 429 33.2.3 執行全文搜索 430 33.3 小結 431 第34 章 事務 432 34.1 什么是事務 432 34.2 MySQL 事務功能 432 34.2.1 系統要求 432 34.2.2 表格創建 433 34.3 一個示例項目 433 34.3.1 創建表格并添加樣本數據 434 34.3.2 執行示例事務 434 34.3.3 使用建議 436 34.4 使用PHP 創建事務型應用 436 34.5 小結 437 第35 章 導入與導出數據 438 35.1 樣本表格 438 35.2 使用數據分隔 438 35.3 導入數據 439 35.3.1 使用LOAD DATA INFILE 導入數據 439 35.3.2 使用mysqlimport 導入數據 441 35.3.3 使用PHP 加載表數據 443 35.4 導出數據 444 35.5 小結 446 |
序: |