注重体验与质量的电子书资源下载网站
分类于: 人工智能 其它
简介
PHP与MySQL权威指南 豆 0.0分
资源最后更新于 2020-11-20 04:53:05
作者:吴津津
出版社:机械工业出版社华章公司
出版日期:2011-01
ISBN:9787111359838
文件格式: pdf
标签: PHP MySQL Discuz web开发 计算机 web 预购 钢管
简介· · · · · ·
PHPChina官方出品,Discuz!创始人戴志康、UCHome创始人李国德、ThinkPHP创始人刘晨、PHPCMS项目负责人王参加等联袂推荐。
本书是目前为止最全面的关于PHP与MySQL开发技术的书籍之一,系统而全面地讲解了PHP与MySQL技术的方方面面,适合初中级的PHP程序员系统地学习;本书也是目前为止首本系统而深入地讲解UCenter、Discuz!、UCHome、ShopNC、PHPCMS等PHP产品的二次开发技术的著作,适合有一定开发经验、需要学习PHP二次开发技术的中高级程序员。
全书分为五个部分:第一部分首先介绍了PHP最常用的服务器Apache的工作原理和使用方法,然后逐步介绍了PHP与MySQL开发环境在Windows和Linux系统下的搭建;第二部分系统地讲解了PHP的语法特性,第三部分详细地阐述了MySQL的基本使用方...
目录
推荐序
作者简介
前言
第一部分 准 备 篇
第1章 Apache基础 / 2
1.1 Apache介绍 / 2
1.1.1 Apache工作原理 / 2
1.1.2 Apache的特点 / 2
1.2 Windows下Apache的部署 / 3
1.2.1 Windows下Apache的安装和配置 / 3
1.2.2 启动、停止和重新启动Apache服务 / 6
1.2.3 Apache支持PHP语言 / 8
1.3 httpd.conf深入剖析 / 10
1.3.1 站点的基本配置 / 10
1.3.2 服务器优化配置 / 10
1.3.3 HTTP响应头的信息配置 / 11
1.3.4 持久性连接配置 / 12
1.4 日志记录 / 12
1.4.1 日志的配置 / 12
1.4.2 错误日志 / 14
1.4.3 访问日志 / 14
1.5 虚拟主机 / 16
1.5.1 基于主机名的虚拟主机 / 16
1.5.2 基于IP地址的虚拟主机 / 18
1.6 URL重写 / 18
1.6.1 mod_rewrite模块 / 18
1.6.2 常用指令 / 19
1.7 实战案例 / 25
1.7.1 防止图片盗链 / 25
1.7.2 Apache伪静态 / 25
1.7.3 用户访问权限设置 / 26
1.8 小结 / 28
第2章 PHP与MySQL开发环境的搭建 / 29
2.1 在Windows上安装IIS / 29
2.2 PHP的安装和配置 / 30
2.2.1 在Windows下的安装和配置 / 30
2.2.2 在Linux下的安装和配置 / 34
2.3 MySQL的安装和配置 / 37
2.3.1 Windows下的安装和配置 / 37
2.3.2 Linux下的安装和配置 / 40
2.4 PHP与MySQL连接 / 41
2.5 小结 / 43
第二部分 PHP篇
第3章 PHP基础 / 46
3.1 PHP的工作原理 / 46
3.2 PHP的版本变迁 / 46
3.3 PHP的特性 / 47
3.4 PHP的应用范围 / 48
3.5 PHP的基本语法 / 48
3.5.1 PHP 标记 / 48
3.5.2 PHP 中的注释 / 48
3.5.3 编写你的第一个PHP应用 / 49
3.6 PHP中的变量与常量 / 49
3.6.1 变量 / 49
3.6.2 常量 / 52
3.7 表达式 / 53
3.7.1 表达式分类 / 53
3.7.2 表达式的应用 / 54
3.7.3 操作数 / 55
3.7.4 操作符 / 55
3.8 PHP中的数据类型 / 56
3.8.1 布尔型 / 56
3.8.2 整型 / 56
3.8.3 字符串 / 56
3.8.4 数组 / 57
3.8.5 对象 / 58
3.8.6 其他类型 / 58
3.9 强制类型转换 / 59
3.9.1 显式和隐式强制类型转换 / 59
3.9.2 有用的强制类型转换函数 / 59
3.10 PHP的语句 / 59
3.10.1 循环语句 / 59
3.10.2 条件判断语句 / 61
3.11 小结 / 62
第4章 字符串和正则表达式 / 63
4.1 什么是字符串 / 63
4.2 定义一个字符串 / 63
4.2.1 使用单引号 / 63
4.2.2 使用双引号 / 63
4.2.3 使用定界符 / 64
4.3 获取字符串 / 65
4.4 拼接字符串 / 66
4.5 字符串的格式化 / 66
4.6 修改字母大小写 / 68
4.7 计算字符串长度和字符数目 / 68
4.8 字符串查找函数 / 70
4.8.1 字符串的查找 / 70
4.8.2 取得字符串的位置 / 71
4.9 字符串的复制和替换 / 71
4.9.1 字符串的复制 / 72
4.9.2 字符串的替换 / 72
4.10 字符串的比较 / 72
4.11 正则表达式的概念和语法 / 73
4.11.1 基本模式匹配 / 73
4.11.2 字符集 / 74
4.11.3 重复 / 75
4.12 使用正则表达式查找子字符串 / 76
4.13 使用正则表达式分割字符串 / 76
4.14 小结 / 77
第5章 数组 / 78
5.1 数组的基本概念 / 78
5.1.1 什么是数组 / 78
5.1.2 数组操作符 / 78
5.2 数字索引数组 / 79
5.2.1 数字索引数组的初始化 / 79
5.2.2 访问数组的内容 / 79
5.2.3 使用循环访问数组 / 80
5.3 数组的创建和添加 / 81
5.3.1 创建数组 / 81
5.3.2 添加数组 / 81
5.4 数组元素的添加和删除 / 82
5.4.1 在数组头添加元素 / 82
5.4.2 在数组尾添加元素 / 82
5.4.3 从数组头删除元素 / 83
5.4.4 从数组尾删除元素 / 83
5.5 数组的遍历 / 84
5.6 字符串与数组之间的转换 / 85
5.7 多维数组 / 85
5.8 数组的排序 / 86
5.8.1 sort()和rsort() / 86
5.8.2 asort()和arsort() / 87
5.8.3 ksort()和krsort() / 87
5.8.4 随机排序函数shuffle() / 87
5.8.5 多维数组的排序 / 87
5.9 数组判断函数 / 88
5.10 数组的合并与拆分 / 89
5.10.1 合并函数array_merge() / 89
5.10.2 合并函数array_combine() / 90
5.10.3 拆分函数 array_chunk() / 90
5.10.4 返回数组交集的函数array_intersect() / 91
5.10.5 将数组转换成标量变量 / 91
5.11 快速初始化数组 / 92
5.11.1 range()函数 / 92
5.11.2 array_fill()函数 / 92
5.12 在数组中查找值 / 93
5.13 定位数组元素 / 93
5.13.1 搜索数组 / 94
5.13.2 获取数组键 / 94
5.13.3 获取数组值 / 95
5.14 小结 / 95
第6章 PHP对文件的操作 / 96
6.1 打开/关闭文件 / 96
6.1.1 打开文件 / 96
6.1.2 关闭文件 / 97
6.2 读取文件 / 97
6.2.1 fread()和file()函数 / 97
6.2.2 fpassthru()函数 / 98
6.2.3 fgets()和fgetss()函数 / 98
6.2.4 fgetcsv()函数 / 99
6.3 写入文件 / 99
6.4 方便的文件处理函数 / 100
6.5 其他文件处理函数 / 101
6.6 移动文件指针小案例 / 102
6.7 文件锁定 / 102
6.8 小结 / 103
第7章 PHP函数与代码的重用性 / 104
7.1 定义和调用函数 / 104
7.2 参数 / 105
7.2.1 按值传递 / 106
7.2.2 按引用传递 / 107
7.2.3 默认参数值 / 107
7.3 函数内的变量范围 / 108
7.3.1 局部变量 / 108
7.3.2 静态变量 / 108
7.3.3 全局变量 / 109
7.4 函数的作用域和可用性 / 110
7.5 用变量存储函数的名称 / 111
7.6 递归函数 / 112
7.7 使用和包含文件 / 113
7.7.1 include与require 的应用 / 113
7.7.2 PHP模板化 / 115
7.8 小结 / 116
第8章 面向对象的程序设计 / 117
8.1 类和对象的关键概念 / 117
8.1.1 类 / 117
8.1.2 对象 / 118
8.1.3 字段 / 119
8.1.4 属性 / 120
8.1.5 常量 / 121
8.1.6 方法 / 121
8.1.7 $this关键字 / 122
8.2 构造方法和析构方法 / 122
8.2.1 构造方法 / 123
8.2.2 析构方法 / 124
8.3 静态类成员 / 125
8.3.1 静态属性 / 125
8.3.2 静态方法 / 125
8.4 对象克隆 / 126
8.4.1 clone一个对象 / 126
8.4.2 _clone()方法 / 127
8.5 继承 / 127
8.5.1 如何继承一个类 / 127
8.5.2 使用parent::关键字 / 128
8.5.3 instanceof关键字 / 129
8.5.4 覆盖父类的方法 / 129
8.6 多态 / 130
8.7 抽象类和接口 / 132
8.7.1 抽象类 / 132
8.7.2 接口 / 132
8.7.3 抽象类与接口的区别 / 134
8.8 命名空间 / 134
8.9 PHP5中的特殊方法 / 137
8.9.1 __toString() / 137
8.9.2 __autoload() / 138
8.9.3 __get()方法和__set()方法 / 138
8.9.4 __call / 139
8.10 小结 / 139
第9章 PHP的错误、异常处理和调试 / 140
9.1 常见的错误类型 / 140
9.1.1 语法错误 / 140
9.1.2 逻辑错误 / 140
9.1.3 未定义错误 / 141
9.1.4 环境错误 / 141
9.1.5 运行错误 / 142
9.2 错误处理机制 / 142
9.2.1 错误级别列表 / 142
9.2.2 错误处理函数 / 144
9.2.3 自定义错误页面 / 144
9.2.4 错误日志 / 145
9.3 异常处理 / 146
9.3.1 异常的基本使用 / 146
9.3.2 PHP的基本异常类 / 147
9.3.3 try、throw和catch / 147
9.3.4 创建自定义的exception类 / 148
9.3.5 多个异常 / 149
9.3.6 重新抛出异常 / 151
9.3.7 设置顶层异常处理器(Top Level Exception Handler) / 152
9.3.8 异常的规则 / 152
9.4 使用Xdebug进行调试 / 152
9.4.1 Xdebug的安装 / 153
9.4.2 Xdebug的使用 / 154
9.4.3 Xdebug的特制函数 / 155
9.5 小结 / 156
第10章 PHP与HTML的交互 / 157
10.1 PHP和Web表单 / 157
10.1.1 表单基本操作 / 157
10.1.2 表单安全性 / 159
10.1.3 常用表单数据的验证方法 / 162
10.2 通过PHP上传文件 / 164
10.2.1 PHP文件上传/资源指令 / 164
10.2.2 上传错误消息 / 164
10.2.3 PHP文件上传示例 / 165
10.3 小结 / 167
第三部分 MySQL篇
第11章 MySQL部署与基本使用 / 170
11.1 MySQL概述 / 170
11.1.1 MySQL为何如此流行 / 170
11.1.2 MySQL特性 / 171
11.2 登录与退出MySQL / 173
11.3 创建、删除数据库和用户 / 174
11.4 MySQL用户管理及权限分配 / 174
11.4.1 MySQL访问权限系统 / 175
11.4.2 设置用户权限 / 176
11.4.3 GRANT和REVOKE命令 / 177
11.5 MySQL优化 / 179
11.6 小结 / 181
第12章 数据库操作:PHP+MySQL / 182
12.1 mysql扩展 / 182
12.1.1 数据库连接 / 182
12.1.2 向数据库中插入数据 / 183
12.2 mysqli扩展 / 186
12.2.1 mysqli的面向对象和面向过程编程方式 / 186
12.2.2 预准备语句 / 189
12.2.3 多查询 / 191
12.3 数据库抽象层 / 192
12.3.1 PDO / 192
12.3.2 ADODB / 195
12.4 小结 / 200
第13章 MySQL中SQL语句的应用 / 201
13.1 SQL语句的基本应用 / 201
13.2 常数列的最大值 / 202
13.3 拥有某列最大值的行 / 202
13.4 按组排列的最大值 / 203
13.5 提取某列在组间的最大值 / 203
13.6 使用用户变量 / 203
13.7 使用AUTO_INCREMENT / 204
13.8 常用的字符串函数 / 205
13.9 常用的日期和时间函数 / 208
13.10 导入数据 / 211
13.10.1 LOAD DATA INFILE / 211
13.10.2 mysqlimport / 212
13.11 导出数据
13.11.1 SELECT INTO OUTFILE / 213
13.11.2 mysqldump / 214
13.12 小结 / 214
第14章 MySQL数据库开发 / 215
14.1 MySQL的数据列类型 / 215
14.1.1 数值类型列 / 215
14.1.2 字符串类型列 / 216
14.2 字符集支持 / 217
14.3 索引的使用 / 219
14.3.1 数据库索引 / 219
14.3.2 主要索引介绍 / 220
14.3.3 索引最佳实践 / 221
14.4 事务处理 / 222
14.4.1 非事务实现方法 / 222
14.4.2 事务实现方法 / 223
14.5 外键与数据的完整性 / 227
14.6 数据库内部语句和语法 / 234
14.6.1 ALTER DATABASE语法 / 234
14.6.2 ALTER TABLE语法 / 234
14.6.3 CREATE DATABASE语法 / 238
14.6.4 CREATE INDEX语法 / 239
14.6.5 CREATE TABLE语法 / 239
14.6.6 DROP DATABASE语法 / 243
14.6.7 DROP INDEX语法 / 244
14.6.8 DROP TABLE语法 / 244
14.6.9 RENAME TABLE语法 / 244
14.7 数据库操作语句和语法 / 245
14.7.1 DELETE语法 / 245
14.7.2 DO语法 / 246
14.7.3 HANDLER语法 / 247
14.7.4 INSERT语法 / 248
14.7.5 LOAD DATA INFILE语法 / 253
14.7.6 FIELDS分隔符 / 254
14.7.7 REPLACE语法 / 257
14.7.8 SELECT语法 / 258
14.7.9 TRUNCATE语法 / 261
14.7.10 UPDATE语法 / 262
14.7.11 EXPLAIN语法 / 263
14.8 存储过程 / 267
14.9 小结 / 268
第15章 MySQL数据管理 / 269
15.1 MySQL的分区 / 269
15.1.1 RANGE分区 / 271
15.1.2 LIST分区 / 273
15.1.3 RANGE和LIST分区的管理 / 275
15.2 MySQL的备份 / 280
15.3 MySQL的恢复 / 281
15.4 MySQL复制 / 281
15.5 小结 / 283
第16章 MySQL的存储引擎及表类型 / 284
16.1 MyISAM存储引擎 / 285
16.1.1 MyISAM启动选项 / 286
16.1.2 损坏的MyISAM表 / 287
16.1.3 未被适当关闭的表的问题 / 288
16.2 InnoDB存储引擎 / 288
16.2.1 InnoDB配置 / 289
16.2.2 InnoDB启动选项 / 293
16.2.3 创建InnoDB表空间 / 296
16.2.4 处理InnoDB初始化问题 / 297
16.2.5 备份和恢复InnoDB数据库 / 297
16.2.6 添加和删除InnoDB数据和日志文件 / 298
16.3 MERGE存储引擎 / 299
16.4 MEMORY(HEAP)存储引擎 / 302
16.5 BDB(BerkeleyDB)存储引擎 / 303
16.5.1 BDB支持的操作系统 / 303
16.5.2 BDB启动选项 / 303
16.6 EXAMPLE存储引擎 / 304
16.7 FEDERATED存储引擎 / 304
16.7.1 FEDERATED存储引擎的描述 / 304
16.7.2 如何使用FEDERATED表 / 305
16.7.3 FEDERATED存储引擎的局限性 / 306
16.8 ARCHIVE存储引擎 / 306
16.9 CSV存储引擎 / 307
16.10 BLACKHOLE存储引擎 / 307
16.11 MySQL最新版本的功能 / 308
16.12 小结 / 308
第17章 phpMyAdmin / 309
17.1 phpMyAdmin的安装与配置 / 309
17.1.1 phpMyAdmin的安装 / 309
17.1.2 phpMyAdmin的配置 / 310
17.1.3 phpMyAdmin配置完成后可能遇到的问题 / 311
17.2 phpMyAdmin的使用 / 311
17.2.1 phpMyAdmin的登录 / 311
17.2.2 phpMyAdmin基本功能介绍 / 312
17.2.3 数据库管理 / 317
17.2.4 数据表管理 / 318
17.2.5 数据记录管理 / 322
17.3 小结 / 323
第四部分 二次开发实战篇
第18章 Smarty应用 / 326
18.1 什么是模板引擎 / 328
18.2 Smarty模板引擎 / 329
18.3 Smarty的安装及初始化配置 / 330
18.3.1 安装Smarty / 331
18.3.2 初始化Smarty类库的默认设置 / 331
18.3.3 程序注释 / 333
18.3.4 简单示例 / 333
18.4 Smarty的使用步骤 / 335
18.5 变量使用 / 336
18.5.1 模板中输出PHP分配的变量 / 336
18.5.2 使用保留变量 / 338
18.6 变量调解器 / 339
18.7 模板的控制结构 / 349
18.7.1 条件选择结构:if-elseif-else / 350
18.7.2 foreach / 351
18.7.3 section / 352
18.8 Smarty缓存 / 353
18.8.1 在Smarty中控制缓存 / 354
18.8.2 每个页面使用多个缓存 / 355
18.8.3 为缓存实例消除处理开销 / 356
18.8.4 清除缓存 / 357
18.8.5 关闭局部缓存 / 358
18.9 小结 / 359
第19章 Zend 系列开发工具 / 360
19.1 Zend Core集成环境 / 360
19.1.1 Zend Core介绍 / 360
19.1.2 Zend Core的安装 / 361
19.2 Zend Optimizer优化器 / 365
19.2.1 Zend Optimizer介绍 / 365
19.2.2 Zend Optimizer的安装 / 365
19.2.3 Zend Optimizer的优化及配置 / 368
19.3 Zend Studio 开发工具 / 369
19.3.1 Zend Studio介绍 / 369
19.3.2 Zend Studio的下载与安装 / 371
19.3.3 Zend Studio功能及组件 / 374
19.3.4 Zend Studio的用户界面 / 375
19.3.5 Zend Studio项目管理 / 386
19.4 Zend Server服务器 / 393
19.4.1 Zend Server简介 / 393
19.4.2 Zend Server安装 / 395
19.5 Zend Guard安全卫士 / 397
19.5.1 Zend Guard简介 / 398
19.5.2 Zend Guard安装 / 398
19.5.3 使用Zend Guard加密文件 / 400
19.6 Zend Platform应用平台 / 406
19.6.1 Zend Platform 概述 / 406
19.6.2 Zend Platform的安装 / 407
19.7 小结 / 412
第20章 SVN版本控制及团队管理 / 413
20.1 基本概念 / 413
20.1.1 什么是版本控制 / 413
20.1.2 什么是 Subversion / 413
20.1.3 什么是版本库 / 414
20.2 SVN服务器的安装与配置 / 414
20.2.1 基于svnserve的SVN配置 / 414
20.2.2 基于Apache的SVN服务器 / 421
20.3 客户端工具TortoiseSVN / 424
20.3.1 什么是TortoiseSVN / 425
20.3.2 下载与安装TortoiseSVN / 425
20.3.3 TortoiseSVN使用 / 428
20.4 小结 / 449
第21章 UCenter开发实战 / 450
21.1 UCenter总述 / 450
21.1.1 UCenter简介 / 450
21.1.2 UCenter安装 / 452
21.1.3 使用UCenter / 458
21.2 UCenter源代码分析 / 463
21.2.1 UCenter系统架构 / 464
21.2.2 UCenter的目录结构 / 464
21.2.3 UCenter核心代码:/index.php / 465
21.2.4 UCenter核心代码:/admin.php / 468
21.3 UCenter接口原理 / 469
21.3.1 接口函数定义的程序文件/uc_client/client.php / 469
21.3.2 通知接口文件uc.php / 488
21.4 UCenter接口开发实例—读取论坛主题或帖子数量信息 / 493
21.5 小结 / 496
第22章 Discuz! 论坛开发实战 / 497
22.1 Discuz!总述 / 497
22.1.1 Discuz!简介 / 497
22.1.2 Discuz!特性 / 498
22.1.3 Discuz!安装 / 498
22.1.4 使用Discuz! / 503
22.2 Discuz!的源代码分析 / 510
22.2.1 Discuz!系统架构 / 510
22.2.2 Discuz!数据库结构 / 510
22.2.3 Discuz!的目录及文件结构 / 513
22.2.4 Discuz!核心代码:/include/common.inc.php / 514
22.2.5 Discuz!核心代码:/include/global.func.php / 533
22.2.6 Discuz!核心代码:/include/db_mysql.class.php / 538
22.2.7 Discuz!核心代码:/include/template.func.php / 540
22.2.8 Discuz!核心代码:/include/cache.func.php / 543
22.2.9 Discuz!核心代码:/admincp.php / 545
22.3 Discuz!的二次开发实例—多语言切换(一) / 548
22.3.1 改造目录结构 / 548
22.3.2 修改数据库 / 548
22.3.3 修改language()函数 / 549
22.3.4 修改template()函数 / 549
22.3.5 修改parse_template()函数 / 550
22.4 Discuz!的二次开发实例—多语言切换(二) / 551
22.4.1 插件模块概述 / 551
22.4.2 多语言切换后台管理 / 555
22.4.3 获取用户选择或系统设定的语言包信息 / 558
22.4.4 制作语言包切换菜单 / 559
22.4.5 编写插件语言包 / 561
22.5 小结 / 561
第23章 UCenter Home SNS系统开发实战 / 562
23.1 UCenter Home总述 / 562
23.1.1 UCenter Home简介 / 562
23.1.2 UCenter Home的安装 / 563
23.1.3 UCenter Home的使用 / 568
23.2 UCenter Home源代码分析 / 582
23.2.1 UCenter Home目录及文件结构 / 582
23.2.2 核心代码:/source/common.php / 583
23.2.3 核心代码:/source/function_common.php / 587
23.2.4 核心代码:/source/class_mysql.php / 594
23.2.5 核心代码: /do.php / 595
23.3 UCenter Home的内部机制 / 598
23.3.1 UCenter Home模板机制 / 598
23.3.2 UCenter Home缓存机制 / 600
23.3.3 UCenter Home登录验证机制 / 602
23.3.4 UCenter Home道具机制 / 604
23.3.5 UCenter Home任务的计划机制 / 605
23.3.6 UCenter Home动态机制 / 608
23.3.7 UCenter Home评论机制 / 611
23.3.8 UCenter Home权限机制 / 613
23.4 UCenter Home的二次开发实例—《记账本》插件 / 616
23.4.1 《记账本》代码设计 / 616
23.4.2 《记账本》插件的安装说明 / 621
23.5 小结 / 621
第24章 ShopNC多用户商城开发实战 / 622
24.1 ShopNC总述 / 622
24.1.1 ShopNC综合多用户商城系统简介 / 622
24.1.2 ShopNC的安装 / 622
24.2 ShopNC多用户商城的源代码分析 / 625
24.2.1 ShopNC多用户商城的系统特性 / 625
24.2.2 ShopNC系统结构 / 626
24.2.3 ShopNC模板引擎 / 627
24.2.4 核心模块的简要说明 / 627
24.2.5 核心模块的详细描述 / 628
24.2.6 核心模块的使用说明 / 675
24.3 ShopNC插件的开发 / 677
24.4 ShopNC支付接口 / 683
24.5 ShopNC商品页静态化 / 685
24.6 ShopNC商品图片上传 / 686
24.7 小结 / 688
第25章 PHPCMS V9内容管理系统开发实战 / 689
25.1 PHPCMS V9总述 / 689
25.1.1 PHPCMS简介 / 689
25.1.2 PHPCMS V9的新特性 / 690
25.1.3 PHPCMS V9的安装 / 694
25.2 PHPCMS源码分析 / 698
25.2.1 目录及文件结构 / 698
25.2.2 模板语法规则 / 702
25.3 PHPCMS V9二次开发介绍 / 703
25.3.1 开发接口概述 / 703
25.3.2 系统类库与函数库的调用 / 703
25.3.3 理解模块和控制器 / 704
25.3.4 二次开发的命名规范 / 704
25.3.5 二次开发的流程 / 704
25.3.6 二次开发技巧 / 705
25.4 PC标签的使用说明 / 706
25.4.1 PC标签概述 / 706
25.4.2 PC标签的语法 / 707
25.4.3 PC标签的保留参数 / 707
25.4.4 PC标签数据的显示 / 708
25.4.5 PC标签的分类 / 708
25.4.6 PC标签工具箱 / 708
25.5 PHPCMS和UCenter的整合 / 711
25.5.1 PHPSSO简介 / 711
25.5.2 PHPSSO与UCenter的整合 / 711
25.5.3 PHPSSO与UCenter整合的常见问题 / 715
25.6 PHPCMS二次开发实例—留言本 / 716
25.6.1 需求分析 / 717
25.6.2 数据库和数据表的设计 / 718
25.6.3 创建模块目录 / 718
25.6.4 创建数据模型类文件 / 719
25.6.5 开发模块控制器和函数 / 720
25.7 小结 / 736
附录A Comsenz产品开发—UCenter 1.5 数据字典 / 737
附录B Discuz! 7.0.0 数据字典 / 743
附录C UC Home 2.0数据字典 / 765
附录D ShopNC 2.0数据字典 / 793
附录E PHPCMS V9数据字典 / 812
后记 / 849
作者简介
前言
第一部分 准 备 篇
第1章 Apache基础 / 2
1.1 Apache介绍 / 2
1.1.1 Apache工作原理 / 2
1.1.2 Apache的特点 / 2
1.2 Windows下Apache的部署 / 3
1.2.1 Windows下Apache的安装和配置 / 3
1.2.2 启动、停止和重新启动Apache服务 / 6
1.2.3 Apache支持PHP语言 / 8
1.3 httpd.conf深入剖析 / 10
1.3.1 站点的基本配置 / 10
1.3.2 服务器优化配置 / 10
1.3.3 HTTP响应头的信息配置 / 11
1.3.4 持久性连接配置 / 12
1.4 日志记录 / 12
1.4.1 日志的配置 / 12
1.4.2 错误日志 / 14
1.4.3 访问日志 / 14
1.5 虚拟主机 / 16
1.5.1 基于主机名的虚拟主机 / 16
1.5.2 基于IP地址的虚拟主机 / 18
1.6 URL重写 / 18
1.6.1 mod_rewrite模块 / 18
1.6.2 常用指令 / 19
1.7 实战案例 / 25
1.7.1 防止图片盗链 / 25
1.7.2 Apache伪静态 / 25
1.7.3 用户访问权限设置 / 26
1.8 小结 / 28
第2章 PHP与MySQL开发环境的搭建 / 29
2.1 在Windows上安装IIS / 29
2.2 PHP的安装和配置 / 30
2.2.1 在Windows下的安装和配置 / 30
2.2.2 在Linux下的安装和配置 / 34
2.3 MySQL的安装和配置 / 37
2.3.1 Windows下的安装和配置 / 37
2.3.2 Linux下的安装和配置 / 40
2.4 PHP与MySQL连接 / 41
2.5 小结 / 43
第二部分 PHP篇
第3章 PHP基础 / 46
3.1 PHP的工作原理 / 46
3.2 PHP的版本变迁 / 46
3.3 PHP的特性 / 47
3.4 PHP的应用范围 / 48
3.5 PHP的基本语法 / 48
3.5.1 PHP 标记 / 48
3.5.2 PHP 中的注释 / 48
3.5.3 编写你的第一个PHP应用 / 49
3.6 PHP中的变量与常量 / 49
3.6.1 变量 / 49
3.6.2 常量 / 52
3.7 表达式 / 53
3.7.1 表达式分类 / 53
3.7.2 表达式的应用 / 54
3.7.3 操作数 / 55
3.7.4 操作符 / 55
3.8 PHP中的数据类型 / 56
3.8.1 布尔型 / 56
3.8.2 整型 / 56
3.8.3 字符串 / 56
3.8.4 数组 / 57
3.8.5 对象 / 58
3.8.6 其他类型 / 58
3.9 强制类型转换 / 59
3.9.1 显式和隐式强制类型转换 / 59
3.9.2 有用的强制类型转换函数 / 59
3.10 PHP的语句 / 59
3.10.1 循环语句 / 59
3.10.2 条件判断语句 / 61
3.11 小结 / 62
第4章 字符串和正则表达式 / 63
4.1 什么是字符串 / 63
4.2 定义一个字符串 / 63
4.2.1 使用单引号 / 63
4.2.2 使用双引号 / 63
4.2.3 使用定界符 / 64
4.3 获取字符串 / 65
4.4 拼接字符串 / 66
4.5 字符串的格式化 / 66
4.6 修改字母大小写 / 68
4.7 计算字符串长度和字符数目 / 68
4.8 字符串查找函数 / 70
4.8.1 字符串的查找 / 70
4.8.2 取得字符串的位置 / 71
4.9 字符串的复制和替换 / 71
4.9.1 字符串的复制 / 72
4.9.2 字符串的替换 / 72
4.10 字符串的比较 / 72
4.11 正则表达式的概念和语法 / 73
4.11.1 基本模式匹配 / 73
4.11.2 字符集 / 74
4.11.3 重复 / 75
4.12 使用正则表达式查找子字符串 / 76
4.13 使用正则表达式分割字符串 / 76
4.14 小结 / 77
第5章 数组 / 78
5.1 数组的基本概念 / 78
5.1.1 什么是数组 / 78
5.1.2 数组操作符 / 78
5.2 数字索引数组 / 79
5.2.1 数字索引数组的初始化 / 79
5.2.2 访问数组的内容 / 79
5.2.3 使用循环访问数组 / 80
5.3 数组的创建和添加 / 81
5.3.1 创建数组 / 81
5.3.2 添加数组 / 81
5.4 数组元素的添加和删除 / 82
5.4.1 在数组头添加元素 / 82
5.4.2 在数组尾添加元素 / 82
5.4.3 从数组头删除元素 / 83
5.4.4 从数组尾删除元素 / 83
5.5 数组的遍历 / 84
5.6 字符串与数组之间的转换 / 85
5.7 多维数组 / 85
5.8 数组的排序 / 86
5.8.1 sort()和rsort() / 86
5.8.2 asort()和arsort() / 87
5.8.3 ksort()和krsort() / 87
5.8.4 随机排序函数shuffle() / 87
5.8.5 多维数组的排序 / 87
5.9 数组判断函数 / 88
5.10 数组的合并与拆分 / 89
5.10.1 合并函数array_merge() / 89
5.10.2 合并函数array_combine() / 90
5.10.3 拆分函数 array_chunk() / 90
5.10.4 返回数组交集的函数array_intersect() / 91
5.10.5 将数组转换成标量变量 / 91
5.11 快速初始化数组 / 92
5.11.1 range()函数 / 92
5.11.2 array_fill()函数 / 92
5.12 在数组中查找值 / 93
5.13 定位数组元素 / 93
5.13.1 搜索数组 / 94
5.13.2 获取数组键 / 94
5.13.3 获取数组值 / 95
5.14 小结 / 95
第6章 PHP对文件的操作 / 96
6.1 打开/关闭文件 / 96
6.1.1 打开文件 / 96
6.1.2 关闭文件 / 97
6.2 读取文件 / 97
6.2.1 fread()和file()函数 / 97
6.2.2 fpassthru()函数 / 98
6.2.3 fgets()和fgetss()函数 / 98
6.2.4 fgetcsv()函数 / 99
6.3 写入文件 / 99
6.4 方便的文件处理函数 / 100
6.5 其他文件处理函数 / 101
6.6 移动文件指针小案例 / 102
6.7 文件锁定 / 102
6.8 小结 / 103
第7章 PHP函数与代码的重用性 / 104
7.1 定义和调用函数 / 104
7.2 参数 / 105
7.2.1 按值传递 / 106
7.2.2 按引用传递 / 107
7.2.3 默认参数值 / 107
7.3 函数内的变量范围 / 108
7.3.1 局部变量 / 108
7.3.2 静态变量 / 108
7.3.3 全局变量 / 109
7.4 函数的作用域和可用性 / 110
7.5 用变量存储函数的名称 / 111
7.6 递归函数 / 112
7.7 使用和包含文件 / 113
7.7.1 include与require 的应用 / 113
7.7.2 PHP模板化 / 115
7.8 小结 / 116
第8章 面向对象的程序设计 / 117
8.1 类和对象的关键概念 / 117
8.1.1 类 / 117
8.1.2 对象 / 118
8.1.3 字段 / 119
8.1.4 属性 / 120
8.1.5 常量 / 121
8.1.6 方法 / 121
8.1.7 $this关键字 / 122
8.2 构造方法和析构方法 / 122
8.2.1 构造方法 / 123
8.2.2 析构方法 / 124
8.3 静态类成员 / 125
8.3.1 静态属性 / 125
8.3.2 静态方法 / 125
8.4 对象克隆 / 126
8.4.1 clone一个对象 / 126
8.4.2 _clone()方法 / 127
8.5 继承 / 127
8.5.1 如何继承一个类 / 127
8.5.2 使用parent::关键字 / 128
8.5.3 instanceof关键字 / 129
8.5.4 覆盖父类的方法 / 129
8.6 多态 / 130
8.7 抽象类和接口 / 132
8.7.1 抽象类 / 132
8.7.2 接口 / 132
8.7.3 抽象类与接口的区别 / 134
8.8 命名空间 / 134
8.9 PHP5中的特殊方法 / 137
8.9.1 __toString() / 137
8.9.2 __autoload() / 138
8.9.3 __get()方法和__set()方法 / 138
8.9.4 __call / 139
8.10 小结 / 139
第9章 PHP的错误、异常处理和调试 / 140
9.1 常见的错误类型 / 140
9.1.1 语法错误 / 140
9.1.2 逻辑错误 / 140
9.1.3 未定义错误 / 141
9.1.4 环境错误 / 141
9.1.5 运行错误 / 142
9.2 错误处理机制 / 142
9.2.1 错误级别列表 / 142
9.2.2 错误处理函数 / 144
9.2.3 自定义错误页面 / 144
9.2.4 错误日志 / 145
9.3 异常处理 / 146
9.3.1 异常的基本使用 / 146
9.3.2 PHP的基本异常类 / 147
9.3.3 try、throw和catch / 147
9.3.4 创建自定义的exception类 / 148
9.3.5 多个异常 / 149
9.3.6 重新抛出异常 / 151
9.3.7 设置顶层异常处理器(Top Level Exception Handler) / 152
9.3.8 异常的规则 / 152
9.4 使用Xdebug进行调试 / 152
9.4.1 Xdebug的安装 / 153
9.4.2 Xdebug的使用 / 154
9.4.3 Xdebug的特制函数 / 155
9.5 小结 / 156
第10章 PHP与HTML的交互 / 157
10.1 PHP和Web表单 / 157
10.1.1 表单基本操作 / 157
10.1.2 表单安全性 / 159
10.1.3 常用表单数据的验证方法 / 162
10.2 通过PHP上传文件 / 164
10.2.1 PHP文件上传/资源指令 / 164
10.2.2 上传错误消息 / 164
10.2.3 PHP文件上传示例 / 165
10.3 小结 / 167
第三部分 MySQL篇
第11章 MySQL部署与基本使用 / 170
11.1 MySQL概述 / 170
11.1.1 MySQL为何如此流行 / 170
11.1.2 MySQL特性 / 171
11.2 登录与退出MySQL / 173
11.3 创建、删除数据库和用户 / 174
11.4 MySQL用户管理及权限分配 / 174
11.4.1 MySQL访问权限系统 / 175
11.4.2 设置用户权限 / 176
11.4.3 GRANT和REVOKE命令 / 177
11.5 MySQL优化 / 179
11.6 小结 / 181
第12章 数据库操作:PHP+MySQL / 182
12.1 mysql扩展 / 182
12.1.1 数据库连接 / 182
12.1.2 向数据库中插入数据 / 183
12.2 mysqli扩展 / 186
12.2.1 mysqli的面向对象和面向过程编程方式 / 186
12.2.2 预准备语句 / 189
12.2.3 多查询 / 191
12.3 数据库抽象层 / 192
12.3.1 PDO / 192
12.3.2 ADODB / 195
12.4 小结 / 200
第13章 MySQL中SQL语句的应用 / 201
13.1 SQL语句的基本应用 / 201
13.2 常数列的最大值 / 202
13.3 拥有某列最大值的行 / 202
13.4 按组排列的最大值 / 203
13.5 提取某列在组间的最大值 / 203
13.6 使用用户变量 / 203
13.7 使用AUTO_INCREMENT / 204
13.8 常用的字符串函数 / 205
13.9 常用的日期和时间函数 / 208
13.10 导入数据 / 211
13.10.1 LOAD DATA INFILE / 211
13.10.2 mysqlimport / 212
13.11 导出数据
13.11.1 SELECT INTO OUTFILE / 213
13.11.2 mysqldump / 214
13.12 小结 / 214
第14章 MySQL数据库开发 / 215
14.1 MySQL的数据列类型 / 215
14.1.1 数值类型列 / 215
14.1.2 字符串类型列 / 216
14.2 字符集支持 / 217
14.3 索引的使用 / 219
14.3.1 数据库索引 / 219
14.3.2 主要索引介绍 / 220
14.3.3 索引最佳实践 / 221
14.4 事务处理 / 222
14.4.1 非事务实现方法 / 222
14.4.2 事务实现方法 / 223
14.5 外键与数据的完整性 / 227
14.6 数据库内部语句和语法 / 234
14.6.1 ALTER DATABASE语法 / 234
14.6.2 ALTER TABLE语法 / 234
14.6.3 CREATE DATABASE语法 / 238
14.6.4 CREATE INDEX语法 / 239
14.6.5 CREATE TABLE语法 / 239
14.6.6 DROP DATABASE语法 / 243
14.6.7 DROP INDEX语法 / 244
14.6.8 DROP TABLE语法 / 244
14.6.9 RENAME TABLE语法 / 244
14.7 数据库操作语句和语法 / 245
14.7.1 DELETE语法 / 245
14.7.2 DO语法 / 246
14.7.3 HANDLER语法 / 247
14.7.4 INSERT语法 / 248
14.7.5 LOAD DATA INFILE语法 / 253
14.7.6 FIELDS分隔符 / 254
14.7.7 REPLACE语法 / 257
14.7.8 SELECT语法 / 258
14.7.9 TRUNCATE语法 / 261
14.7.10 UPDATE语法 / 262
14.7.11 EXPLAIN语法 / 263
14.8 存储过程 / 267
14.9 小结 / 268
第15章 MySQL数据管理 / 269
15.1 MySQL的分区 / 269
15.1.1 RANGE分区 / 271
15.1.2 LIST分区 / 273
15.1.3 RANGE和LIST分区的管理 / 275
15.2 MySQL的备份 / 280
15.3 MySQL的恢复 / 281
15.4 MySQL复制 / 281
15.5 小结 / 283
第16章 MySQL的存储引擎及表类型 / 284
16.1 MyISAM存储引擎 / 285
16.1.1 MyISAM启动选项 / 286
16.1.2 损坏的MyISAM表 / 287
16.1.3 未被适当关闭的表的问题 / 288
16.2 InnoDB存储引擎 / 288
16.2.1 InnoDB配置 / 289
16.2.2 InnoDB启动选项 / 293
16.2.3 创建InnoDB表空间 / 296
16.2.4 处理InnoDB初始化问题 / 297
16.2.5 备份和恢复InnoDB数据库 / 297
16.2.6 添加和删除InnoDB数据和日志文件 / 298
16.3 MERGE存储引擎 / 299
16.4 MEMORY(HEAP)存储引擎 / 302
16.5 BDB(BerkeleyDB)存储引擎 / 303
16.5.1 BDB支持的操作系统 / 303
16.5.2 BDB启动选项 / 303
16.6 EXAMPLE存储引擎 / 304
16.7 FEDERATED存储引擎 / 304
16.7.1 FEDERATED存储引擎的描述 / 304
16.7.2 如何使用FEDERATED表 / 305
16.7.3 FEDERATED存储引擎的局限性 / 306
16.8 ARCHIVE存储引擎 / 306
16.9 CSV存储引擎 / 307
16.10 BLACKHOLE存储引擎 / 307
16.11 MySQL最新版本的功能 / 308
16.12 小结 / 308
第17章 phpMyAdmin / 309
17.1 phpMyAdmin的安装与配置 / 309
17.1.1 phpMyAdmin的安装 / 309
17.1.2 phpMyAdmin的配置 / 310
17.1.3 phpMyAdmin配置完成后可能遇到的问题 / 311
17.2 phpMyAdmin的使用 / 311
17.2.1 phpMyAdmin的登录 / 311
17.2.2 phpMyAdmin基本功能介绍 / 312
17.2.3 数据库管理 / 317
17.2.4 数据表管理 / 318
17.2.5 数据记录管理 / 322
17.3 小结 / 323
第四部分 二次开发实战篇
第18章 Smarty应用 / 326
18.1 什么是模板引擎 / 328
18.2 Smarty模板引擎 / 329
18.3 Smarty的安装及初始化配置 / 330
18.3.1 安装Smarty / 331
18.3.2 初始化Smarty类库的默认设置 / 331
18.3.3 程序注释 / 333
18.3.4 简单示例 / 333
18.4 Smarty的使用步骤 / 335
18.5 变量使用 / 336
18.5.1 模板中输出PHP分配的变量 / 336
18.5.2 使用保留变量 / 338
18.6 变量调解器 / 339
18.7 模板的控制结构 / 349
18.7.1 条件选择结构:if-elseif-else / 350
18.7.2 foreach / 351
18.7.3 section / 352
18.8 Smarty缓存 / 353
18.8.1 在Smarty中控制缓存 / 354
18.8.2 每个页面使用多个缓存 / 355
18.8.3 为缓存实例消除处理开销 / 356
18.8.4 清除缓存 / 357
18.8.5 关闭局部缓存 / 358
18.9 小结 / 359
第19章 Zend 系列开发工具 / 360
19.1 Zend Core集成环境 / 360
19.1.1 Zend Core介绍 / 360
19.1.2 Zend Core的安装 / 361
19.2 Zend Optimizer优化器 / 365
19.2.1 Zend Optimizer介绍 / 365
19.2.2 Zend Optimizer的安装 / 365
19.2.3 Zend Optimizer的优化及配置 / 368
19.3 Zend Studio 开发工具 / 369
19.3.1 Zend Studio介绍 / 369
19.3.2 Zend Studio的下载与安装 / 371
19.3.3 Zend Studio功能及组件 / 374
19.3.4 Zend Studio的用户界面 / 375
19.3.5 Zend Studio项目管理 / 386
19.4 Zend Server服务器 / 393
19.4.1 Zend Server简介 / 393
19.4.2 Zend Server安装 / 395
19.5 Zend Guard安全卫士 / 397
19.5.1 Zend Guard简介 / 398
19.5.2 Zend Guard安装 / 398
19.5.3 使用Zend Guard加密文件 / 400
19.6 Zend Platform应用平台 / 406
19.6.1 Zend Platform 概述 / 406
19.6.2 Zend Platform的安装 / 407
19.7 小结 / 412
第20章 SVN版本控制及团队管理 / 413
20.1 基本概念 / 413
20.1.1 什么是版本控制 / 413
20.1.2 什么是 Subversion / 413
20.1.3 什么是版本库 / 414
20.2 SVN服务器的安装与配置 / 414
20.2.1 基于svnserve的SVN配置 / 414
20.2.2 基于Apache的SVN服务器 / 421
20.3 客户端工具TortoiseSVN / 424
20.3.1 什么是TortoiseSVN / 425
20.3.2 下载与安装TortoiseSVN / 425
20.3.3 TortoiseSVN使用 / 428
20.4 小结 / 449
第21章 UCenter开发实战 / 450
21.1 UCenter总述 / 450
21.1.1 UCenter简介 / 450
21.1.2 UCenter安装 / 452
21.1.3 使用UCenter / 458
21.2 UCenter源代码分析 / 463
21.2.1 UCenter系统架构 / 464
21.2.2 UCenter的目录结构 / 464
21.2.3 UCenter核心代码:/index.php / 465
21.2.4 UCenter核心代码:/admin.php / 468
21.3 UCenter接口原理 / 469
21.3.1 接口函数定义的程序文件/uc_client/client.php / 469
21.3.2 通知接口文件uc.php / 488
21.4 UCenter接口开发实例—读取论坛主题或帖子数量信息 / 493
21.5 小结 / 496
第22章 Discuz! 论坛开发实战 / 497
22.1 Discuz!总述 / 497
22.1.1 Discuz!简介 / 497
22.1.2 Discuz!特性 / 498
22.1.3 Discuz!安装 / 498
22.1.4 使用Discuz! / 503
22.2 Discuz!的源代码分析 / 510
22.2.1 Discuz!系统架构 / 510
22.2.2 Discuz!数据库结构 / 510
22.2.3 Discuz!的目录及文件结构 / 513
22.2.4 Discuz!核心代码:/include/common.inc.php / 514
22.2.5 Discuz!核心代码:/include/global.func.php / 533
22.2.6 Discuz!核心代码:/include/db_mysql.class.php / 538
22.2.7 Discuz!核心代码:/include/template.func.php / 540
22.2.8 Discuz!核心代码:/include/cache.func.php / 543
22.2.9 Discuz!核心代码:/admincp.php / 545
22.3 Discuz!的二次开发实例—多语言切换(一) / 548
22.3.1 改造目录结构 / 548
22.3.2 修改数据库 / 548
22.3.3 修改language()函数 / 549
22.3.4 修改template()函数 / 549
22.3.5 修改parse_template()函数 / 550
22.4 Discuz!的二次开发实例—多语言切换(二) / 551
22.4.1 插件模块概述 / 551
22.4.2 多语言切换后台管理 / 555
22.4.3 获取用户选择或系统设定的语言包信息 / 558
22.4.4 制作语言包切换菜单 / 559
22.4.5 编写插件语言包 / 561
22.5 小结 / 561
第23章 UCenter Home SNS系统开发实战 / 562
23.1 UCenter Home总述 / 562
23.1.1 UCenter Home简介 / 562
23.1.2 UCenter Home的安装 / 563
23.1.3 UCenter Home的使用 / 568
23.2 UCenter Home源代码分析 / 582
23.2.1 UCenter Home目录及文件结构 / 582
23.2.2 核心代码:/source/common.php / 583
23.2.3 核心代码:/source/function_common.php / 587
23.2.4 核心代码:/source/class_mysql.php / 594
23.2.5 核心代码: /do.php / 595
23.3 UCenter Home的内部机制 / 598
23.3.1 UCenter Home模板机制 / 598
23.3.2 UCenter Home缓存机制 / 600
23.3.3 UCenter Home登录验证机制 / 602
23.3.4 UCenter Home道具机制 / 604
23.3.5 UCenter Home任务的计划机制 / 605
23.3.6 UCenter Home动态机制 / 608
23.3.7 UCenter Home评论机制 / 611
23.3.8 UCenter Home权限机制 / 613
23.4 UCenter Home的二次开发实例—《记账本》插件 / 616
23.4.1 《记账本》代码设计 / 616
23.4.2 《记账本》插件的安装说明 / 621
23.5 小结 / 621
第24章 ShopNC多用户商城开发实战 / 622
24.1 ShopNC总述 / 622
24.1.1 ShopNC综合多用户商城系统简介 / 622
24.1.2 ShopNC的安装 / 622
24.2 ShopNC多用户商城的源代码分析 / 625
24.2.1 ShopNC多用户商城的系统特性 / 625
24.2.2 ShopNC系统结构 / 626
24.2.3 ShopNC模板引擎 / 627
24.2.4 核心模块的简要说明 / 627
24.2.5 核心模块的详细描述 / 628
24.2.6 核心模块的使用说明 / 675
24.3 ShopNC插件的开发 / 677
24.4 ShopNC支付接口 / 683
24.5 ShopNC商品页静态化 / 685
24.6 ShopNC商品图片上传 / 686
24.7 小结 / 688
第25章 PHPCMS V9内容管理系统开发实战 / 689
25.1 PHPCMS V9总述 / 689
25.1.1 PHPCMS简介 / 689
25.1.2 PHPCMS V9的新特性 / 690
25.1.3 PHPCMS V9的安装 / 694
25.2 PHPCMS源码分析 / 698
25.2.1 目录及文件结构 / 698
25.2.2 模板语法规则 / 702
25.3 PHPCMS V9二次开发介绍 / 703
25.3.1 开发接口概述 / 703
25.3.2 系统类库与函数库的调用 / 703
25.3.3 理解模块和控制器 / 704
25.3.4 二次开发的命名规范 / 704
25.3.5 二次开发的流程 / 704
25.3.6 二次开发技巧 / 705
25.4 PC标签的使用说明 / 706
25.4.1 PC标签概述 / 706
25.4.2 PC标签的语法 / 707
25.4.3 PC标签的保留参数 / 707
25.4.4 PC标签数据的显示 / 708
25.4.5 PC标签的分类 / 708
25.4.6 PC标签工具箱 / 708
25.5 PHPCMS和UCenter的整合 / 711
25.5.1 PHPSSO简介 / 711
25.5.2 PHPSSO与UCenter的整合 / 711
25.5.3 PHPSSO与UCenter整合的常见问题 / 715
25.6 PHPCMS二次开发实例—留言本 / 716
25.6.1 需求分析 / 717
25.6.2 数据库和数据表的设计 / 718
25.6.3 创建模块目录 / 718
25.6.4 创建数据模型类文件 / 719
25.6.5 开发模块控制器和函数 / 720
25.7 小结 / 736
附录A Comsenz产品开发—UCenter 1.5 数据字典 / 737
附录B Discuz! 7.0.0 数据字典 / 743
附录C UC Home 2.0数据字典 / 765
附录D ShopNC 2.0数据字典 / 793
附录E PHPCMS V9数据字典 / 812
后记 / 849