PHP基礎案例教程(第2版)
內容描述
本書是面向PHP初學者的一本入門教材,作者站在初學者的角度,以通俗易懂的語言、豐富的圖解、實用的案例,詳細講解PHP語言的基礎知識。本書共12章,前11章是知識講解,內容包括PHP開篇、PHP語法基礎、函數、數組、錯誤處理及調試、Web前後端數據交互、PHP操作MySQL數據庫、正則表達式、文件操作、圖像操作、面向對象編程,每章都設有動手實踐,用於練習和鞏固所學內容;第12章是項目實戰,綜合運用所學知識開發“趣PHP”網站。本書既可作為高等教育本、專科院校電腦相關專業的PHP課程教材,也可作為廣大IT人員和編程愛好者的參考書。
目錄大綱
第 1章 PHP開篇 11.1 初識PHP 11.1.1 什麽是PHP 11.1.2 PHP的發展歷史 21.1.3 PHP的特點 31.2 Visual Studio Code編輯器 31.2.1 Visual Studio Code概述 31.2.2 下載和安裝Visual Studio Code 41.2.3 安裝中文語言擴展 61.3 PHP開發環境搭建 71.3.1 Apache的安裝 71.3.2 PHP的安裝 101.4 Web服務器配置 141.4.1 Apache常用的配置項 141.4.2 PHP常用的配置項 151.4.3 虛擬主機配置 151.4.4 訪問權限控制 161.4.5 分佈式配置文件 171.4.6 目錄瀏覽功能 171.4.7 自定義錯誤頁面 181.5 編寫PHP程序 18動手實踐:PHP代碼嵌入HTML 20本章小結 21課後練習 21第 2章 PHP語法基礎 232.1 基本語法 232.1.1 PHP標記 232.1.2 註釋 242.1.3 輸出語句 252.1.4 標識符 252.1.5 關鍵字 252.2 變量、常量和表達式 262.2.1 變量 262.2.2 可變變量 272.2.3 常量 272.2.4 預定義常量 282.2.5 表達式 292.3 數據類型 292.3.1 常用的數據類型 292.3.2 數據類型檢測 322.3.3 數據類型轉換 332.4 運算符 342.4.1 算術運算符 342.4.2 賦值運算符 352.4.3 比較運算符 352.4.4 三元運算符 362.4.5 邏輯運算符 362.4.6 遞增/遞減運算符 372.4.7 字符串拼接運算符 372.4.8 位運算符 372.4.9 錯誤控制運算符 392.4.10 運算符優先級 392.5 流程控制 402.5.1 分支結構 402.5.2 循環結構 432.5.3 循環嵌套 452.5.4 跳轉語句 462.5.5 流程控制替代語句 472.6 文件包含語句 482.6.1 include和require 482.6.2 include_once和require_once 50動手實踐1:表格生成器 51動手實踐2:九九乘法表 53本章小結 54課後練習 54第3章 函數 563.1 函數的定義與調用 563.1.1 初識函數 563.1.2 設置函數的參數 573.1.3 函數中變量的作用域 583.2 函數的嵌套調用 593.2.1 嵌套調用 593.2.2 遞歸調用 603.3 函數的高級應用 613.3.1 靜態變量 613.3.2 可變函數 613.3.3 回調函數 623.3.4 匿名函數 623.4 PHP的內置函數 633.4.1 字符串函數 633.4.2 數學函數 653.4.3 時間和日期函數 663.5 PHP手冊的使用 67動手實踐:製作年歷 70本章小結 72課後練習 72第4章 數組 744.1 初識數組 744.2 數組的基本使用 754.2.1 定義數組 754.2.2 訪問數組 764.2.3 遍歷數組 774.2.4 刪除數組 784.2.5 數組運算符 784.3 數組查找 794.3.1 順序查找法 794.3.2 二分查找法 804.4 數組排序 814.4.1 冒泡排序 814.4.2 選擇排序 824.4.3 快速排序 834.4.4 插入排序 844.5 常用的數組函數 854.5.1 指針操作函數 854.5.2 元素操作函數 864.5.3 數組排序函數 864.5.4 數組檢索函數 874.5.5 其他數組函數 874.6 數組與字符串之間的轉換 884.6.1 字符串轉換成數組 884.6.2 數組轉換成字符串 89動手實踐:找猴王游戲 89本章小結 90課後練習 90第5章 錯誤處理及調試 925.1 錯誤處理概述 925.1.1 常見的錯誤類型 925.1.2 常見的錯誤級別 935.2 錯誤處理方式 945.2.1 顯示錯誤報告 945.2.2 記錄錯誤日誌 965.2.3 手動觸發錯誤 965.2.4 自定義錯誤處理函數 975.3 Xdebug程序調試工具 98動手實踐:獲取PHP腳本運行信息 100本章小結 102課後練習 102第6章 Web前後端數據交互 1046.1 HTTP 1046.1.1 什麽是HTTP 1046.1.2 HTTP版本 1056.1.3 請求消息 1066.1.4 查看請求消息 1096.1.5 響應消息 1106.1.6 查看響應消息 1126.2 表單 1136.2.1 表單的組成 1136.2.2 表單數據交互 1156.2.3 表單提交數組 1166.2.4 HTML特殊字符處理 1176.3 Cookie技術 1186.3.1 Cookie簡介 1186.3.2 Cookie的使用 1196.3.3 Cookie的保存方式 1216.4 Session技術 1216.4.1 Session簡介 1216.4.2 Session基本使用 1226.4.3 Session常用的配置 1236.5 cURL擴展 1246.5.1 什麽是cURL擴展 1246.5.2 使用cURL擴展發送請求 1246.6 輸出緩沖 1266.6.1 什麽是輸出緩沖 1266.6.2 輸出緩沖函數 128動手實踐1:用戶登錄與退出 129動手實踐2:Web表單生成器 130本章小結 131課後練習 131第7章 PHP操作MySQL數據庫 1337.1 什麽是MySQL 1337.2 MySQL的安裝和登錄 1347.2.1 安裝MySQL 1347.2.2 登錄MySQL 1357.3 MySQL的使用 1357.3.1 數據庫操作 1367.3.2 數據表操作 1367.3.3 數據操作 1377.4 PHP中的數據庫擴展 1387.5 MySQLi擴展的使用 1387.5.1 開啟MySQLi擴展 1397.5.2 MySQLi擴展的常用函數 1397.5.3 連接數據庫 1397.5.4 執行SQL語句 1417.5.5 處理結果集 1417.6 預處理操作 1437.6.1 什麽是預處理 1437.6.2 實現預處理操作的常用函數 143動手實踐:許願牆 145本章小結 146課後練習 146第8章 正則表達式 1488.1 初識正則表達式 1488.1.1 什麽是正則表達式 1488.1.2 正則表達式的語法格式 1498.1.3 如何使用正則表達式 1498.2 元字符 1508.2.1 定位符 1508.2.2 中括號、連字符和反義符 1508.2.3 反斜線 1518.2.4 點字符和限定符 1528.2.5 豎線 1538.2.6 小括號 1538.3 模式修飾符 1548.4 正則表達式常用函數 1558.4.1 preg_grep()函數 1558.4.2 preg_replace()函數 1558.4.3 preg_split()函數 157動手實踐:正則表達式表單驗證 158本章小結 160課後練習 160第9章 文件操作 1619.1 文件基本操作 1619.1.1 讀取文件 1619.1.2 寫入文件 1639.1.3 重命名、復制和刪除文件 1649.1.4 文件類型和屬性 1659.1.5 創建、刪除和遍歷目錄 1679.1.6 路徑解析 1689.2 文件進階操作 1699.2.1 文件指針 1699.2.2 目錄句柄 1729.2.3 資源流 1739.2.4 文件上傳 174動手實踐:文件存儲系統 175本章小結 178課後練習 178第 10章 圖像操作 17910.1 PHP圖像基礎知識 17910.1.1 GD庫擴展 17910.1.2 常見的圖像格式 18010.2 圖像的常見操作 18110.2.1 繪制圖像快速入門 18110.2.2 圖像的基本操作 18110.2.3 繪制基本形狀 18410.2.4 繪制文本 18610.3 圖像的高級處理 18810.3.1 圖像疊加與縮放 18910.3.2 圖像過濾 191動手實踐:在線相冊 192本章小結 193課後練習 193第 11章 面向對象編程 19511.1 初識面向對象 19511.1.1 面向過程與面向對象 19611.1.2 面向對象中的類與對象 19611.2 類與對象的使用 19711.2.1 類的定義和實例化 19711.2.2 類成員 19811.2.3 可變類與可變類成員 19911.2.4 訪問控制修飾符 19911.2.5 對象的鏈式調用 20011.2.6 對象的比較 20011.2.7 對象的淺復制和克隆 20011.3 魔術方法 20111.3.1 常見的魔術方法 20111.3.2 構造方法 20211.3.3 析構方法 20211.4 類常量與靜態成員 20411.4.1 類常量 20411.4.2 靜態成員 20411.5 面向對象三大特性 20511.6 封裝與繼承 20511.6.1 封裝 20511.6.2 繼承 20611.6.3 重寫 20711.6.4 靜態延遲綁定 20811.6.5 final關鍵字 20911.7 Trait代碼復用 20911.7.1 什麽是Trait 20911.7.2 解決Trait成員同名問題 21011.7.3 修改Trait中的方法的訪問控制修飾符 21011.7.4 Trait同名成員的優先級 21111.8 抽象類、抽象方法與接口 21211.8.1 抽象類與抽象方法 21211.8.2 接口 21311.9 多態與類型約束 21311.9.1 多態 21411.9.2 類型約束 21411.10 設計模式 21511.10.1 單例模式 21511.10.2 工廠模式 21611.11 MySQLi擴展面向對象語法 21611.11.1 MySQLi擴展面向對象基本語法 21611.11.2 預處理和綁定參數 217動手實踐:Session入庫 218本章小結 220課後練習 221第 12章 項目實戰——“趣PHP” 網站 22212.1 項目展示 22212.2 項目開發說明 231本章小結 232
作者介紹
黑马程序员,传智教育旗下高端IT品牌,成立于2006年,它是由中国Java培训先行者张孝祥老师发起,联合中文IT社区CSDN、中关村软件园共同创办的一家专业教育机构。办学至今,我们一直坚守着“为千万人少走弯路而著书,为中华软件之崛起而讲课”的办学理念,坚持培养优秀软件应用工程师的宏伟目标,在累计培养的十万余名学员中,其中90%的学员均已在北、上、广等一线城市高薪就业,特别是“黑马程序员”的平均就业薪资已达到8K以上。