不仅系统阐述了PHP与MySQL发必须掌握的所有理论知识,而且以项目实践的方式详细讲解了UCenter、Discuz!、UCHome、ShopNC、PHPCMS等重要PHP产品的二次发技术 PHPChina官方出品,Discuz!创始人戴志康、UCHome创始人李国德、ThinkPHP创始人刘晨、PHPCMS项目负责人王参加等联袂推荐,权威性毋庸置疑
售 价:¥
纸质售价:¥88.50购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
推荐序
作者简介
前言
写作本书的目的
本书的内容及特色
本书面向的读者
如何阅读本书
补充参考资料
致谢
第一部分 准备篇
第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数据字典
后记
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜