序
一年半前,听聞作者有寫作本書的打算,終于在近日即將面世,在此,一則表示恭喜,二來表示感激。我一直致力于LAMP技術在國內的推廣,其中之一就是技術圖書的普及,近年來,技術好且具教學經驗又願意寫書的作者少之又少,而本書作者兼備這些優勢著作此書,期望本書成為眾多愛好者入門的寶典,引領更多的新人邁入PHP程序員之列,對此,作者著實做了一件PHP技術推廣的大好之事。
很榮幸成為本書最早的讀者,近半年陸陸續續看了作者所寫的多個章節的電子版,深感作者之用心,本書敘述清楚,知識涵蓋豐富,結合了作者的項目經驗與教學體會,是一本不可多得的入門書籍,即便是從事開發多年的老手也可以從中梳理自己的知識。隨書附贈的教學視頻,當初在LAMP兄弟連社區所造成的轟動,至今讓我記憶猶新。本書未出版前,就有眾多會員熱心地給出本書從目錄到書名的各種建議,大家對本書的期待也促成了作者完成本書的決心,畢竟歷時一年半完成一本書不是件容易的事情。
多年前,我曾與作者共同致力于Linux技術在國內的推廣,時至今日,Linux終于廣為人知,現如今的PHP尤似當年的Linux,Web 2.0的如火如荼,讓基于開放源代碼的PHP以其良好的安全性,高效率的執行速度、廉價的部署成本得到了互聯網企業的大力推崇,掌握PHP技術,也成為了技術人才謀求職場發展的黃金選擇。遺憾的是,目前開設PHP課程的國內大學寥寥無幾,但願本書也可以成為大學生了解最新Web開發技術的渠道,更奢願有朝一日PHP技術也可以在大學得以廣泛普及,我們正在為此努力著。
一本書的出版,凝聚著作者多年技術與經驗的積累;一個人才的成長,需要歷經不斷的學習和實戰的累積。有時,一本書可以改變一個人的人生;有時,一個人可以寫出一本助人成才的書。我看到的,正是這樣一本書。誠如LAMP兄弟連的口號“無兄弟不編程”,願所有的LAMP愛好者團結互助,願開源精神發揚,光大。
我向所有PHP愛好者推薦本書。
開發Web應用程序PHP是最理想的工具,易于使用、功能強大、成本低廉、高安全性、開發速度快且執行靈活。全書以實用為目標設計,包含PHP開發最主流的各項技術,對每一個知識點都進行了深入詳細的講解,並附有大量的實例代碼,圖文並茂。系統地介紹了PHP的相關技術及其在實際Web開發中的應用。
全書共17章,每一章都是PHP獨立知識點的總結。內容涵蓋了PHP的運行環境搭建、Web服務器Apache的配置與應用、動態網站開發的前台技術、PHP編程語言的語法、PHP的常用功能模塊和實用技巧、MySQL數據庫的設計與應用、PHP 5面向對象的程序設計思想、Web開發的設計模式,以及包含DIV+CSS、mysqli擴展模塊、數據庫抽象層PDO、Smarty模板技術等目前PHP開發中最主流的技術。每一章中都有大量的實用示例,以及詳盡的注釋,加速讀者的理解和學習,也為每章的技術點設置了大量的自測試題。最後以一個比較完整的、采用面向對象思想,以及通過MVC模式設計,並結合Smarty模板的CMS系統為案例,詳細介紹了Web系統開發從設計到部署的各個細節,更好地進行開發實踐。
對于PHP應用開發的新手而言,不失為一本好的入門教材,內容既實用又全面,輔以視頻教程,使讀者輕松掌握所學知識。另外,本書也適合有一定基礎的網絡開發人員和網絡愛好者,以及大中專院校的師生閱讀與參考。不僅可以作為PHP開發的學習用書,還可以作為從事Web開發的程序員的參考用書和必備手冊。對于行家來說,本書也是一本難得的參考手冊,讀者必將從中獲益。
高洛峰。現任北京LAMP兄弟連(易第優教育)教學總監,五年軟件開發工作經驗,四年IT教學工作經驗。曾在多家上市企業擔任過技術總監、項目經理、高級軟件工程師等職務,具有扎實的技術功底。國內資深的高級技術認證講師,從事IT培訓以來累計授課長達6000課時以上,培訓近千名學員成功走向IT崗位,具有豐富的IT教學經驗。熟悉掌握UNIX/Linux/Windows等多種操作系統,一直從事嵌入式、C\C++、J2EE、J2ME、J2SE、PHP及Oracle數據庫等技術研發工作。其中,對Web系統軟件開發深有研究,近年來致力于推廣LAMP開源平台系列軟件。
目錄
第1章 LAMP網站構建
1.1 網站軟件簡介
1.1.1 B/S軟件體系結構
1.1.2 動態網站介紹
1.2 動態網站軟件開發所需的Web構件
1.2.1 客戶端瀏覽器
1.2.2 擴展超文本標記語言XHTML
1.2.3 層疊樣式表CSS
1.2.4 XML和XSLT
1.2.5 客戶端腳本編程語言
1.2.6 Web服務器
1.2.7 服務器端腳本編程語言
1.2.8 數據庫管理系統
1.3 網站軟件開發平台及工作流程
1.3.1 動態網站開發平台
1.3.2 動態網站開發平台技術比較
1.4 客戶端與服務器端交互的工作原理
1.4.1 HTTP協議是什麼
1.4.2 Web的工作原理
1.5 LAMP網站開發組合概述
1.5.1 Linux操作系統
1.5.2 Web服務器Apache
1.5.3 MySQL數據庫管理系統
1.5.4 PHP後台腳本編程語言
1.5.5 LAMP發展趨勢
1.6 小結
自測題
第2章 搭建PHP的開發環境
2.1 環境安裝對操作系統的選擇
2.1.1 選擇網站運營的操作系統
2.1.2 選擇網站開發的操作系統
2.2 Linux系統下源代碼包方式安裝環境
2.2.1 安裝前準備
2.2.2 編譯安裝過程介紹
2.2.3 安裝libxml2最新庫文件
2.2.4 安裝libmcrypt最新庫文件
2.2.5 安裝zlib最新庫文件
2.2.6 安裝libpng最新庫文件
2.2.7 安裝jpeg6最新庫文件
2.2.8 安裝freetype最新庫文件
2.2.9 安裝autoconf最新的庫文件
2.2.10 安裝最新的GD庫文件
2.2.11 安裝新版本的Apache服務器
2.2.12 安裝MySQL數據庫管理系統
2.2.13 安裝最新版本的PHP模塊
2.2.14 安裝Zend加速器
2.2.15 phpMyAdmin的安裝
2.2.16 phpMyAdmin的配置
2.3 在Windows系統上安裝Web工作環境
2.3.1 安裝前準備
2.3.2 安裝Apache
2.3.3 安裝MySQL
2.3.4 安裝PHP
2.3.5 安裝Zend加速器
2.4 Window系統上安裝集成開發環境
2.4.1 安裝前準備
2.4.2 安裝步驟
2.4.3 環境測試
2.5 小結
自測題
第3章 Apache服務器的配置
3.1 Apache簡介
3.1.1 Apache的誕生
3.1.2 Apache的特性
3.2 Apache服務器的目錄結構
3.3 Apache服務器配置文件結構說明
3.3.1 Apache服務器配置文件位置
3.3.2 配置文件的語法
3.4 Apache服務器全局參數設置
3.4.1 在主配置文件httpd.conf中的全局參數
3.4.2 附加配置文件httpd-default.conf中的全局參數
3.4.3 附加配置文件httpd-mpm.conf中的全局參數
3.5 Apache服務器中使用配置段(容器)
3.5.1 文件系統容器
3.5.2 網絡空間容器
3.5.3 通配符和正則表達式
3.5.4 如何選擇使用容器
3.6 .htaccess文件和訪問限制
3.6.1 設置路徑別名
3.6.2 在.htaccess文件中設置目錄的訪問限制
3.7 設置虛擬主機
3.7.1 基于IP地址的虛擬主機
3.7.2 基于主機名的虛擬主機
3.8 小結
自測題
第4章 XHTML和CSS網頁標準化布局
4.1 網頁制作概述
4.1.1 XHTML基礎
4.1.2 CSS基礎
4.2 HTML的設計與應用
4.2.1 XHTML語言的語法
4.2.2 XHTML文件的主體結構
4.2.3 文字版面的編輯
4.2.4 創建圖像和鏈接
4.2.5 使用XHTML表格
4.2.6 XHTML框架結構
4.2.7 XHTML表單設計
4.3 CSS的設計與應用
4.3.1 將樣式表加入到HTML中
4.3.2 CSS選擇符
4.3.3 常見的樣式屬性和值
4.4 DIV+CSS網頁標準化布局
4.4.1 DIV+CSS的優勢
4.4.2 “無意義”的元素div和span
4.4.3 區塊框模型
4.4.4 區塊框定位
4.4.5 區塊框浮動
4.4.6 使用區塊框設計頁面布局
4.5 XHTML和CSS網站首頁面布局實例
4.5.1 XHTML文件的設計
4.5.2 CSS文件設計
4.6 小結
自測題
第5章 PHP的基本語法
5.1 PHP在Web開發中的應用
5.2 第一個PHP腳本程序
5.2.1 PHP語言標記
5.2.2 指令分隔符“分號”
5.2.3 程序注釋
5.2.4 在程序中使用空白的處理
5.3 變量
5.3.1 變量的聲明
5.3.2 變量的命名
5.3.3 可變變量
5.3.4 變量的引用賦值
5.4 變量的類型
5.4.1 類型介紹
5.4.2 布爾型(boolean)
5.4.3 整型(integer)
5.4.4 浮點型(float或double)
5.4.5 字符串(String)
5.4.6 數組(Array)
5.4.7 對象(Object)
5.4.8 資源類型(Resource)
5.4.9 NULL類型
5.4.10 偽類型介紹
5.4.11 數據類型之間相互轉換
5.5 常量
5.5.1 常量的定義和使用
5.5.2 常量和變量
5.5.3 預定義常量
5.6 PHP中的運算符
5.6.1 算術運算符
5.6.2 字符串運算符
5.6.3 賦值運算符
5.6.4 比較運算符
5.6.5 邏輯運算符
5.6.6 位運算符
5.6.7 其他運算符
5.6.8 運算符的優先級
5.7 表達式
5.8 小結
自測題
第6章 PHP的語言結構
6.1 流程控制概述
6.2 分支結構
6.2.1 單一條件分支結構(if)
6.2.2 雙向條件分支結構(else子句)
6.2.3 多向條件分支結構(elseif子句)
6.2.4 多向條件分支結構(switch語句)
6.2.5 巢狀條件分支結構
6.2.6 條件分支結構應用實例(簡單計算器)
6.3 循環結構
6.3.1 while語句
6.3.2 dowhile循環
6.3.3 for語句
6.3.4 特殊的流程控制語句
6.4 PHP中的函數
6.4.1 函數的定義
6.4.2 自定義函數
6.4.3 函數的工作原理和結構化編程
6.4.4 PHP變量的範圍
6.4.5 參數的傳遞
6.4.6 變量函數
6.4.7 遞歸函數
6.4.8 使用自定義函數庫
6.4.9 使用系統函數庫
6.5 小結
自測題
第7章 PHP中的數組與數據結構
7.1 數組的概述
數組的分類
7.2 數組的定義
7.2.1 直接賦值的方式聲明數組
7.2.2 使用array()語言結構新建數組
7.2.3 多維數組的聲明
7.3 數組的遍歷
7.3.1 使用for語句循環遍歷數組
7.3.2 使用foreach語句遍歷數組
7.3.3 聯合使用list( )、each( )和while循環遍歷數組
7.3.4 使用數組的內部指針控制函數遍歷數組
7.4 預定義數組
7.4.1 服務器變量︰$_SERVER
7.4.2 環境變量︰$_ENV
7.4.3 HTTP GET變量︰$_GET
7.4.4 HTTP POST變量︰$_POST
7.4.5 request變量︰$_REQUEST
7.4.6 HTTP文件上傳變量︰$_FILES
7.4.7 HTTP Cookies︰$_COOKIE
7.4.8 Session變量︰$_SESSION
7.4.9 Global變量︰$GLOBALS
7.5 數組的相關處理函數
7.5.1 數組的鍵/值操作函數
7.5.2 統計數組元素的個數和唯一性
7.5.3 使用回調函數處理數組的函數
7.5.4 數組的排序函數
7.5.5 拆分、合並、分解和接合數組
7.5.6 數組與數據結構
7.5.7 其他有用的數組處理函數
7.6 小結
自測題
第8章 PHP面向對象的程序設計
8.1 面向對象的介紹
8.1.1 類和對象之間的關系
8.1.2 面向對象的程序設計
8.2 如何抽象一個類
8.2.1 類的聲明
8.2.2 成員屬性
8.2.3 成員方法
8.3 通過類實例化對象
8.3.1 創建對象
8.3.2 對象類型在內存中的分配
8.3.3 對象中成員的訪問
8.3.4 特殊的對象引用“$this”
8.3.5 構造方法與析構方法
8.4 封裝性
8.4.1 設置私有成員
8.4.2 私有成員的訪問
8.4.3 __set()、__get()、__isset()和__unset()四個方法
8.5 繼承性
8.5.1 類繼承的應用
8.5.2 訪問類型控制
8.5.3 子類中重載父類的方法
8.6 常見的關鍵字和魔術方法
8.6.1 final關鍵字的應用
8.6.2 static和const關鍵字的使用
8.6.3 克隆對象
8.6.4 類中通用的方法__toString()
8.6.5 通過__call()方法處理錯誤調用
8.6.6 自動加載類
8.6.7 對象串行化
8.7 抽象類與接口
8.7.1 抽象方法和抽象類
8.7.2 接口技術
8.8 多態性的應用
8.9 小結
自測題
第9章 字符串處理與正則表達式
9.1 字符串的處理介紹
9.1.1 字符串的處理方式
9.1.2 字符串類型的特點
9.2 常用的字符串輸出函數
9.3 常用的字符串格式化函數
9.3.1 去除空格和字符串填補函數
9.3.2 字符串大小寫的轉換
9.3.3 和HTML標簽相關的字符串格式化
9.3.4 其他字符串格式化函數
9.4 字符串比較函數
9.4.1 按字節順序進行字符串比較
9.4.2 按自然排序進行字符串比較
9.5 正則表達式在字符串處理中的應用
9.5.1 正則表達式簡介
9.5.2 正則表達式的語法規則
9.6 與Perl兼容的正則表達式函數
9.6.1 字符串的匹配與查找
9.6.2 字符串的替換
9.6.3 字符串的分割和連接
9.7 文章發布操作示例
9.8 小結
自測題
第10章 PHP常用功能模塊
10.1 錯誤和異常處理
10.1.1 錯誤類型和基本的調試方法
10.1.2 錯誤日志
10.1.3 異常處理
10.2 日期和時間
10.2.1 UNIX時間戳
10.2.2 在PHP中獲取日期和時間
10.2.3 日期和時間格式化輸出
10.2.4 修改PHP的默認時區
10.2.5 使用微秒計算PHP腳本執行時間
10.3 動態圖像處理
10.3.1 PHP中GD庫的使用
10.3.2 畫布管理
10.3.3 設置顏色
10.3.4 生成圖像
10.3.5 繪制圖像
10.3.6 在圖像中繪制文字
10.3.7 在PHP中實現驗證碼類的設計
10.4 小結
自測題
第11章 文件系統處理
11.1 文件系統概述
11.1.1 文件類型
11.1.2 文件的屬性
11.2 目錄的基本操作
11.2.1 解析目錄路徑
11.2.2 遍歷目錄
11.2.3 統計目錄大小
11.2.4 建立和刪除目錄
11.2.5 復制或移動目錄
11.3 文件的基本操作
11.3.1 文件的打開與關閉
11.3.2 寫入文件
11.3.3 讀取文件內容
11.3.4 訪問遠程文件
11.3.5 移動文件指針
11.3.6 文件的鎖定機制
11.3.7 文件的一些基本操作函數
11.4 文件的上傳與下載
11.4.1 文件上傳
11.4.2 處理多個文件上傳
11.4.3 文件下載
11.5 文件系統項目實例
11.5.1 功能分析
11.5.2 系統功能設計
11.5.3 實例代碼實現
11.6 小結
自測題
第12章 MySQL數據庫設計
12.1 MySQL數據庫管理
12.1.1 數據庫管理系統
12.1.2 結構化查詢語言SQL1
12.1.3 MySQL數據庫的連接與關閉
12.1.4 創建、選擇及查看數據庫
12.2 MySQL數據庫中數據表的設計
12.2.1 數據表(Table)
12.2.2 數據值和列類型
12.2.3 數據字段屬性
12.2.4 創建、修改及刪除表
12.2.5 數據表的類型及存儲位置
12.2.6 數據表的默認字符集1
12.2.7 創建索引2
12.3 數據庫的設計步驟
12.3.1 需求分析
12.3.2 概念設計
12.3.3 邏輯設計
12.4 SQL語言設計
12.4.1 執行DDL命令操作數據對象
12.4.2 使用DML命令操作數據表中的數據記錄
12.4.3 通過DQL命令查詢數據表中的數據
12.5 使用PHP腳本向MySQL服務器發送SQL
12.5.1 在PHP腳本中連接MySQL服務器
12.5.2 在PHP程序中選擇已創建的數據庫
12.5.3 執行SQL命令
12.5.4 在PHP腳本中處理SELECT查詢結果集
12.6 小結
自測題
第13章 PHP的mysqli擴展
13.1 啟用mysqli擴展模塊
13.2 使用mysqli類
13.2.1 連接MySQL服務器
13.2.2 處理連接錯誤報告
13.2.3 關閉與MySQL服務器連接
13.2.4 執行SQL命令
13.3 使用mysqli_result類
13.3.1 創建結果集對象
13.3.2 回收查詢內存
13.3.3 從結果集中解析數據
13.3.4 從結果集中獲取數據列的信息
13.3.5 一次執行多條SQL命令
13.4 使用mysqli_stmt類
13.4.1 獲取預處理語句對象
13.4.2 綁定參數
13.4.3 執行準備好的語句
13.4.4 回收資源
13.4.5 簡單的示例分析
13.4.6 使用預處理語句處理SELECT查詢結果
13.5 數據庫事務
13.5.1 事務處理
13.5.2 構建事務應用程序
13.6 MVC模式實現商品管理系統
13.6.1 MVC設計模式
13.6.2 商品管理系統的設計與實現
13.7 小結
自測題
第14章 數據庫抽象層PDO
14.1 PDO所支持的數據庫
14.2 PDO的安裝
14.3 創建PDO對象
14.3.1 以多種方式調用構造方法
14.3.2 PDO對象中的成員方法
14.4 使用PDO對象
14.4.1 調整PDO的行為屬性
14.4.2 PDO處理PHP程序和數據庫之間的數據類型轉換
14.4.3 PDO的錯誤處理模式
14.4.4 使用PDO執行SQL語句
14.5 PDO對預處理語句的支持
14.5.1 了解PDOStatement對象
14.5.2 準備語句
14.5.3 綁定參數
14.5.4 執行準備好的查詢
14.5.5 獲取數據
14.5.6 大數據對象的存取
14.6 PDO的事務處理
14.7 小結
自測題
第15章 會話控制
15.1 為什麼要使用會話控制
15.2 會話跟蹤的方式
15.3 Cookie的應用
15.3.1 Cookie概述
15.3.2 向客戶端電腦中設置Cookie
15.3.3 在PHP腳本中讀取Cookie的資料內容
15.3.4 數組形態的Cookie應用
15.3.5 刪除Cookie
15.3.6 基于Cookie的用戶登錄模塊
15.4 Session的應用
15.4.1 Session概述
15.4.2 配置Session
15.4.3 Session的聲明與使用
15.4.4 注冊一個會話變量和讀取Session
15.4.5 注銷變量與銷毀Session
15.4.6 傳遞Session ID
15.5 一個簡單的郵件系統
15.5.1 為郵件系統準備數據
15.5.2 編碼實現郵件系統
15.5.3 郵件系統執行說明
15.6 小結
自測題
第16章 PHP的模板技術Smarty
16.1 什麼是模板引擎
16.2 編寫自己的模板引擎
16.2.1 創建自己的模板引擎類
16.2.2 使用自已的模板引擎
16.2.3 自定義模板的使用示例分析2
16.3 選擇Smarty模板引擎
16.4 安裝Smarty及初使化配置
16.4.1 安裝Smarty
16.4.2 初使化Smarty類庫的默認設置
16.4.3 第一個Smarty的簡單示例
16.5 Smarty在應用程序邏輯層的使用步驟
16.6 Smarty模板中的程序邏輯
16.6.1 模板中的注釋
16.6.2 模板中變量的聲明
16.6.3 在模板中輸出從PHP分配的變量
16.6.4 模板中變量的數學計算
16.6.5 在模板中使用{$smarty}保留變量
16.6.6 變量調解器
16.6.7 模板的控制結構
16.6.8 在模板中包含子模板
16.7 為Smarty模板創建配置文件
16.7.1 配置文件語法格式
16.7.2 加載配置文件
16.7.3 引用配置文件中的變量
16.8 Smarty處理頁面緩存
16.8.1 在Smarty中控制緩存
16.8.2 每個頁面多個緩存
16.8.3 為緩存實例消除處理開銷
16.8.4 清除緩存
16.8.5 關閉局部緩存
16.9 應用Smarty實現分頁示例
16.9.1 準備工作
16.9.2 設計數據庫操作類
16.9.3 設計分頁操作類
16.9.4 PHP的程序邏輯層
16.9.5 Smarty模板的表現層
16.10 小結
自測題
第17章 內容管理系統(CMS)
17.1 Web軟件開發流程概述
17.1.1 Web開發團隊的成員
17.1.2 Web軟件開發流程
17.1.3 項目開發規範
17.2 需求分析
17.2.1 CMS簡介
17.2.2 用戶行為分析
17.2.3 系統目標
17.2.4 系統特點
17.3 系統功能預覽
17.3.1 CMS系統安裝
17.3.2 登錄管理平台
17.3.3 常規設置管理
17.3.4 友情鏈接管理
17.3.5 圖片管理
17.3.6 欄目管理
17.3.7 文章管理
17.3.8 用戶管理
17.3.9 網站首頁
17.3.10 文章列表頁面
17.3.11 文章內容頁面
17.4 數據庫設計
17.4.1 數據庫需求分析
17.4.2 數據表關系
17.5 系統架構
17.5.1 系統體系結構
17.5.2 管理平台的文件結構
17.5.3 網站前台模板風格的文件結構
17.6 常用的功能模塊開發
17.6.1 系統安裝模塊設計
17.6.2 管理平台(後台)的模塊設計
17.6.3 無限分類模塊設計
17.6.4 網站首頁面的設計
17.7 小結
附錄A PHP配置文件詳解
線上試讀:
http://www.books.com.tw/exep/assp.php/yogo/exep/prod/lookinside.php?item=CN10150351
相關資訊:
http://www.books.com.tw/exep/assp.php/yogo/exep/prod/china/chinafile.php?item=CN10150351
沒有留言:
張貼留言