推薦序
作者簡介
前言
第一部分 準備篇
第1章 apache基礎
1.1 apache介紹
1.1.1 apache工作原理
1.1.2 apache的特點
1.2 windows下apache的部署
1.2.1 windows下apache的安裝和配置
1.2.2 啟動、停止和重新啟動apache服務
1.2.3 apache支持php語言
1.3 httpd.conf深入剖析
1.3.1 站點的基本配置
1.3.2 服務器優化配置
1.3.3 http響應頭的信息配置
1.3.4 持久性連接配置
1.4 日志記錄
1.4.1 日志的配置
1.4.2 錯誤日志
1.4.3 訪問日志
1.5 虛擬主機
1.5.1 基于主機名的虛擬主機
1.5.2 基于ip地址的虛擬主機
1.6 url重寫
1.6.1 mod_rewrite模塊
1.6.2 常用指令
1.7 實戰案例
1.7.1 防止圖片盜鏈
1.7.2 apache偽靜態
1.7.3 用戶訪問權限設置
1.8 小結
第2章 php與mysql開發環境的搭建
2.1 在windows上安裝iis
2.2 php的安裝和配置
2.2.1 在windows下的安裝和配置
2.2.2 在linux下的安裝和配置
2.3 mysql的安裝和配置
2.3.1 windows下的安裝和配置
2.3.2 linux下的安裝和配置
2.4 php與mysql連接
2.5 小結
第二部分 php篇
第3章 php基礎
3.1 php的工作原理
3.2 php的版本變遷
3.3 php的特性
3.4 php的應用範圍
3.5 php的基本語法
3.5.1 php標記
3.5.2 php中的注釋
3.5.3 編寫你的第一個php應用
3.6 php中的變量與常量
3.6.1 變量
3.6.2 常量
3.7 表達式
3.7.1 表達式分類
3.7.2 表達式的應用
3.7.3 操作數
3.7.4 操作符
3.8 php中的數據類型
3.8.1 布爾型
3.8.2 整型
3.8.3 字符串
3.8.4 數組
3.8.5 對象
3.8.6 其他類型
3.9 強制類型轉換
3.9.1 顯式和隱式強制類型轉換
3.9.2 有用的強制類型轉換函數
3.10 php的語句
3.10.1 循環語句
3.10.2 條件判斷語句
3.11 小結
第4章 字符串和正則表達式
4.1 什麼是字符串
4.2 定義一個字符串
4.2.1 使用單引號
4.2.2 使用雙引號
4.2.3 使用定界符
4.3 獲取字符串
4.4 拼接字符串
4.5 字符串的格式化
4.6 修改字母大小寫
4.7 計算字符串長度和字符數目
4.8 字符串查找函數
4.8.1 字符串的查找
4.8.2 取得字符串的位置
4.9 字符串的復制和替換
4.9.1 字符串的復制
4.9.2 字符串的替換
4.10 字符串的比較
4.11 正則表達式的概念和語法
4.11.1 基本模式匹配
4.11.2 字符集
4.11.3 重復
4.12 使用正則表達式查找子字符串
4.13 使用正則表達式分割字符串
4.14 小結
第5章 數組
5.1 數組的基本概念
5.1.1 什麼是數組
5.1.2 數組操作符
5.2 數字索引數組
5.2.1 數字索引數組的初始化
5.2.2 訪問數組的內容
5.2.3 使用循環訪問數組
5.3 數組的創建和添加
5.3.1 創建數組
5.3.2 添加數組
5.4 數組元素的添加和刪除
5.4.1 在數組頭添加元素
5.4.2 在數組尾添加元素
5.4.3 從數組頭刪除元素
5.4.4 從數組尾刪除元素
5.5 數組的遍歷
5.6 字符串與數組之間的轉換
5.7 多維數組
5.8 數組的排序
5.8.1 sort()和rsort()
5.8.2 asort()和arsort()
5.8.3 ksort()和krsort()
5.8.4 隨機排序函數shuffle()
5.8.5 多維數組的排序
5.9 數組判斷函數
5.10 數組的合並與拆分
5.10.1 合並函數array_merge()
5.10.2 合並函數array_combine()
5.10.3 拆分函數 array_chunk()
5.10.4 返回數組交集的函數array_intersect()
5.10.5 將數組轉換成標量變量
5.11 快速初始化數組
5.11.1 range()函數
5.11.2 array_fill()函數
5.12 在數組中查找值
5.13 定位數組元素
5.13.1 搜索數組
5.13.2 獲取數組鍵
5.13.3 獲取數組值
5.14 小結
第6章 php對文件的操作
6.1 打開/關閉文件
6.1.1 打開文件
6.1.2 關閉文件
6.2 讀取文件
6.2.1 fread()和file()函數
6.2.2 fpassthru()函數
6.2.3 fgets()和fgetss()函數
6.2.4 fgetcsv()函數
6.3 寫入文件
6.4 方便的文件處理函數
6.5 其他文件處理函數
6.6 移動文件指針小案例
6.7 文件鎖定
6.8 小結
第7章 php函數與代碼的重用性
7.1 定義和調用函數
7.2 參數
7.2.1 按值傳遞
7.2.2 按引用傳遞
7.2.3 默認參數值
7.3 函數內的變量範圍
7.3.1 局部變量
7.3.2 靜態變量
7.3.3 全局變量
7.4 函數的作用域和可用性
7.5 用變量存儲函數的名稱
7.6 遞歸函數
7.7 使用和包含文件
7.7.1 include與require 的應用
7.7.2 php模板化
7.8 小結
第8章 面向對象的程序設計
8.1 類和對象的關鍵概念
8.1.1 類
8.1.2 對象
8.1.3 字段
8.1.4 屬性
8.1.5 常量
8.1.6 方法
8.1.7 $this關鍵字
8.2 構造方法和析構方法
8.2.1 構造方法
8.2.2 析構方法
8.3 靜態類成員
8.3.1 靜態屬性
8.3.2 靜態方法
8.4 對象克隆
8.4.1 clone一個對象
8.4.2 _clone()方法
8.5 繼承
8.5.1 如何繼承一個類
8.5.2 使用parent::關鍵字
8.5.3 instanceof關鍵字
8.5.4 覆蓋父類的方法
8.6 多態
8.7 抽象類和接口
8.7.1 抽象類
8.7.2 接口
8.7.3 抽象類與接口的區別
8.8 命名空間
8.9 php5中的特殊方法
8.9.1 __tostring()
8.9.2 __autoload()
8.9.3 __get()方法和__set()方法
8.9.4 __call
8.10 小結
第9章 php的錯誤、異常處理和調試
9.1 常見的錯誤類型
9.1.1 語法錯誤
9.1.2 邏輯錯誤
9.1.3 未定義錯誤
9.1.4 環境錯誤
9.1.5 運行錯誤
9.2 錯誤處理機制
9.2.1 錯誤級別列表
9.2.2 錯誤處理函數
9.2.3 自定義錯誤頁面
9.2.4 錯誤日志
9.3 異常處理
9.3.1 異常的基本使用
9.3.2 php的基本異常類
9.3.3 try、throw和catch
9.3.4 創建自定義的exception類
9.3.5 多個異常
9.3.6 重新拋出異常
9.3.7 設置頂層異常處理器(top level exception handler)
9.3.8 異常的規則
9.4 使用xdebug進行調試
9.4.1 xdebug的安裝
9.4.2 xdebug的使用
9.4.3 xdebug的特制函數
9.5 小結
第10章 php與html的交互
10.1 php和web表單
10.1.1 表單基本操作
10.1.2 表單安全性
10.1.3 常用表單數據的驗證方法
10.2 通過php上傳文件
10.2.1 php文件上傳/資源指令
10.2.2 上傳錯誤消息
10.2.3 php文件上傳示例
10.3 小結
第三部分 mysql篇
第11章 mysql部署與基本使用
11.1 mysql概述
11.1.1 mysql為何如此流行
11.1.2 mysql特性
11.2 登錄與退出mysql
11.3 創建、刪除數據庫和用戶
11.4 mysql用戶管理及權限分配
11.4.1 mysql訪問權限系統
11.4.2 設置用戶權限
11.4.3 grant和revoke命令
11.5 mysql優化
11.6 小結
第12章 數據庫操作︰php+mysql
12.1 mysql擴展
12.1.1 數據庫連接
12.1.2 向數據庫中插入數據
12.2 mysqli擴展
12.2.1 mysqli的面向對象和面向過程編程方式
12.2.2 預準備語句
12.2.3 多查詢
12.3 數據庫抽象層
12.3.1 pdo
12.3.2 adodb
12.4 小結
第13章 mysql中sql語句的應用
13.1 sql語句的基本應用
13.2 常數列的最大值
13.3 擁有某列最大值的行
13.4 按組排列的最大值
13.5 提取某列在組間的最大值
13.6 使用用戶變量
13.7 使用auto_increment
13.8 常用的字符串函數
13.9 常用的日期和時間函數
13.10 導入數據
13.10.1 load data infile
13.10.2 mysqlimport
13.11 導出數據
13.11.1 select into outfile
13.11.2 mysqldump
13.12 小結
第14章 mysql數據庫開發
14.1 mysql的數據列類型
14.1.1 數值類型列
14.1.2 字符串類型列
14.2 字符集支持
14.3 索引的使用
14.3.1 數據庫索引
14.3.2 主要索引介紹
14.3.3 索引最佳實踐
14.4 事務處理
14.4.1 非事務實現方法
14.4.2 事務實現方法
14.5 外鍵與數據的完整性
14.6 數據庫內部語句和語法
14.6.1 alter database語法
14.6.2 alter table語法
14.6.3 create database語法
14.6.4 create index語法
14.6.5 create table語法
14.6.6 drop database語法
14.6.7 drop index語法
14.6.8 drop table語法
14.6.9 rename table語法
14.7 數據庫操作語句和語法
14.7.1 delete語法
14.7.2 do語法
14.7.3 handler語法
14.7.4 insert語法
14.7.5 load data infile語法
14.7.6 fields分隔符
14.7.7 replace語法
14.7.8 select語法
14.7.9 truncate語法
14.7.10 update語法
14.7.11 explain語法
14.8 存儲過程
14.9 小結
第15章 mysql數據管理
15.1 mysql的分區
15.1.1 range分區
15.1.2 list分區
15.1.3 range和list分區的管理
15.2 mysql的備份
15.3 mysql的恢復
15.4 mysql復制
15.5 小結
第16章 mysql的存儲引擎及表類型
16.1 myisam存儲引擎
16.1.1 myisam啟動選項
16.1.2 損壞的myisam表
16.1.3 未被適當關閉的表的問題
16.2 innodb存儲引擎
16.2.1 innodb配置
16.2.2 innodb啟動選項
16.2.3 創建innodb表空間
16.2.4 處理innodb初始化問題
16.2.5 備份和恢復innodb數據庫
16.2.6 添加和刪除innodb數據和日志文件
16.3 merge存儲引擎
16.4 memory(heap)存儲引擎
16.5 bdb(berkeleydb)存儲引擎
16.5.1 bdb支持的操作系統
16.5.2 bdb啟動選項
16.6 example存儲引擎
16.7 federated存儲引擎
16.7.1 federated存儲引擎的描述
16.7.2 如何使用federated表
16.7.3 federated存儲引擎的局限性
16.8 archive存儲引擎
16.9 csv存儲引擎
16.10 blackhole存儲引擎
16.11 mysql最新版本的功能
16.12 小結
第17章 phpmyadmin
17.1 phpmyadmin的安裝與配置
17.1.1 phpmyadmin的安裝
17.1.2 phpmyadmin的配置
17.1.3 phpmyadmin配置完成後可能遇到的問題
17.2 phpmyadmin的使用
17.2.1 phpmyadmin的登錄
17.2.2 phpmyadmin基本功能介紹
17.2.3 數據庫管理
17.2.4 數據表管理
17.2.5 數據記錄管理
17.3 小結
第四部分 二次開發實戰篇
第18章 smarty應用
18.1 什麼是模板引擎
18.2 smarty模板引擎
18.3 smarty的安裝及初始化配置
18.3.1 安裝smarty
18.3.2 初始化smarty類庫的默認設置
18.3.3 程序注釋
18.3.4 簡單示例
18.4 smarty的使用步驟
18.5 變量使用
18.5.1 模板中輸出php分配的變量
18.5.2 使用保留變量
18.6 變量調解器
18.7 模板的控制結構
18.7.1 條件選擇結構︰if-elseif-else
18.7.2 foreach
18.7.3 section
18.8 smarty緩存
18.8.1 在smarty中控制緩存
18.8.2 每個頁面使用多個緩存
18.8.3 為緩存實例消除處理開銷
18.8.4 清除緩存
18.8.5 關閉局部緩存
18.9 小結
第19章 zend系列開發工具
19.1 zend core集成環境
19.1.1 zend core介紹
19.1.2 zend core的安裝
19.2 zend optimizer優化器
19.2.1 zend optimizer介紹
19.2.2 zend optimizer的安裝
19.2.3 zend optimizer的優化及配置
19.3 zend studio 開發工具
19.3.1 zend studio介紹
19.3.2 zend studio的下載與安裝
19.3.3 zend studio功能及組件
19.3.4 zend studio的用戶界面
19.3.5 zend studio項目管理
19.4 zend server服務器
19.4.1 zend server簡介
19.4.2 zend server安裝
19.5 zend guard安全衛士
19.5.1 zend guard簡介
19.5.2 zend guard安裝
19.5.3 使用zend guard加密文件
19.6 zend platform應用平台
19.6.1 zend platform 概述
19.6.2 zend platform的安裝
19.7 小結
第20章 svn版本控制及團隊管理
20.1 基本概念
20.1.1 什麼是版本控制
20.1.2 什麼是 subversion
20.1.3 什麼是版本庫
20.2 svn服務器的安裝與配置
20.2.1 基于svnserve的svn配置
20.2.2 基于apache的svn服務器
20.3 客戶端工具tortoisesvn
20.3.1 什麼是tortoisesvn
20.3.2 下載與安裝tortoisesvn
20.3.3 tortoisesvn使用
20.4 小結
第21章 ucenter開發實戰
21.1 ucenter總述
21.1.1 ucenter簡介
21.1.2 ucenter安裝
21.1.3 使用ucenter
21.2 ucenter源代碼分析
21.2.1 ucenter系統架構
21.2.2 ucenter的目錄結構
21.2.3 ucenter核心代碼︰/index.php
21.2.4 ucenter核心代碼︰/admin.php
21.3 ucenter接口原理
21.3.1 接口函數定義的程序文件/uc_client/client.php
21.3.2 通知接口文件uc.php
21.4 ucenter接口開發實例—讀取論壇主題或帖子數量信息
21.5 小結
第22章 discuz!論壇開發實戰
22.1 discuz!總述
22.1.1 discuz!簡介
22.1.2 discuz!特性
22.1.3 discuz!安裝
22.1.4 使用discuz!
22.2 discuz!的源代碼分析
22.2.1 discuz!系統架構
22.2.2 discuz!數據庫結構
22.2.3 discuz!的目錄及文件結構
22.2.4 discuz!核心代碼︰/include/common.inc.php
22.2.5 discuz!核心代碼︰/include/global.func.php
22.2.6 discuz!核心代碼︰/include/db_mysql.class.php
22.2.7 discuz!核心代碼︰/include/template.func.php
22.2.8 discuz!核心代碼︰/include/cache.func.php
22.2.9 discuz!核心代碼︰/admincp.php
22.3 discuz!的二次開發實例—多語言切換(一)
22.3.1 改造目錄結構
22.3.2 修改數據庫
22.3.3 修改language()函數
22.3.4 修改template()函數
22.3.5 修改parse_template()函數
22.4 discuz!的二次開發實例—多語言切換(二)
22.4.1 插件模塊概述
22.4.2 多語言切換後台管理
22.4.3 獲取用戶選擇或系統設定的語言包信息
22.4.4 制作語言包切換菜單
22.4.5 編寫插件語言包
22.5 小結
第23章 ucenter home sns系統開發實戰
23.1 ucenter home總述
23.1.1 ucenter home簡介
23.1.2 ucenter home的安裝
23.1.3 ucenter home的使用
23.2 ucenter home源代碼分析
23.2.1 ucenter home目錄及文件結構
23.2.2 核心代碼︰/source/common.php
23.2.3 核心代碼︰/source/function_common.php
23.2.4 核心代碼︰/source/class_mysql.php
23.2.5 核心代碼︰/do.php
23.3 ucenter home的內部機制
23.3.1 ucenter home模板機制
23.3.2 ucenter home緩存機制
23.3.3 ucenter home登錄驗證機制
23.3.4 ucenter home道具機制
23.3.5 ucenter home任務的計劃機制
23.3.6 ucenter home動態機制
23.3.7 ucenter home評論機制
23.3.8 ucenter home權限機制
23.4 ucenter home的二次開發實例—《記賬本》插件
23.4.1 《記賬本》代碼設計
23.4.2 《記賬本》插件的安裝說明
23.5 小結
第24章 shopnc多用戶商城開發實戰
24.1 shopnc總述
24.1.1 shopnc綜合多用戶商城系統簡介
24.1.2 shopnc的安裝
24.2 shopnc多用戶商城的源代碼分析
24.2.1 shopnc多用戶商城的系統特性
24.2.2 shopnc系統結構
24.2.3 shopnc模板引擎
24.2.4 核心模塊的簡要說明
24.2.5 核心模塊的詳細描述
24.2.6 核心模塊的使用說明
24.3 shopnc插件的開發
24.4 shopnc支付接口
24.5 shopnc商品頁靜態化
24.6 shopnc商品圖片上傳
24.7 小結
第25章 phpcms v9內容管理系統開發實戰
25.1 phpcms v9總述
25.1.1 phpcms簡介
25.1.2 phpcms v9的新特性
25.1.3 phpcms v9的安裝
25.2 phpcms源碼分析
25.2.1 目錄及文件結構
25.2.2 模板語法規則
25.3 phpcms v9二次開發介紹
25.3.1 開發接口概述
25.3.2 系統類庫與函數庫的調用
25.3.3 理解模塊和控制器
25.3.4 二次開發的命名規範
25.3.5 二次開發的流程
25.3.6 二次開發技巧
25.4 pc標簽的使用說明
25.4.1 pc標簽概述
25.4.2 pc標簽的語法
25.4.3 pc標簽的保留參數
25.4.4 pc標簽數據的顯示
25.4.5 pc標簽的分類
25.4.6 pc標簽工具箱
25.5 phpcms和ucenter的整合
25.5.1 phpsso簡介
25.5.2 phpsso與ucenter的整合
25.5.3 phpsso與ucenter整合的常見問題
25.6 phpcms二次開發實例—留言本
25.6.1 需求分析
25.6.2 數據庫和數據表的設計
25.6.3 創建模塊目錄
25.6.4 創建數據模型類文件
25.6.5 開發模塊控制器和函數
25.7 小結
附錄a comsenz產品開發—ucenter 1.5 數據字典
附錄b discuz! 7.0.0 數據字典
附錄c uc home 2.0數據字典
附錄d shopnc 2.0數據字典
附錄e phpcms v9數據字典
後記