第1章 了解PHP18
1.1 什么是PHP19
1.2 选择PHP的理由19
1.3 如何学好编程22
1.4 准备PHP的开发条件24
1.4.1 下载PHP及相关软件24
1.4.2 代码编辑工具24
1.4.3 下载PHP用户手册26
1.5 本章小结26
第2章 准备开发PHP的条件27
2.1 AppServ—Windows版PHP集成化安装包28
2.1.1 用AppServ搭建PHP开发环境28
2.1.2 测试AppServ是否安装成功30
2.2 XAMPP—Linux版PHP集成化安装包31
2.2.1 用XAMPP搭建PHP开发环境32
2.2.2 在Linux操作系统下启动、停止XAMPP33
2.2.3 设置Linux版XAMPP中MySQL数据库root用户的密码33
2.2.4 在Linux操作系统下编写第一个PHP程序33
2.3 PHP开发环境的关键配置信息34
2.3.1 Apache服务器的基本配置34
2.3.2 PHP.INI文件的基本配置35
2.4 解决PHP的常见配置问题36
2.4.1 解决Apache服务器端口冲突36
2.4.2 更改Apache服务器默认存储的文件路径36
2.4.3 在PHP.INI文件中更改上传文件的大小37
2.4.4 增加PHP扩展模块37
2.4.5 检测PHP是否支持MySQL数据库38
2.5 Dreamweaver开发工具38
2.5.1 情景应用一——Dreamweaver中编码格式的选择38
2.5.2 情景应用二——Dreamweaver创建表格39
2.5.3 情景应用三——Dreamweaver创建表单43
2.5.4 情景应用四——Dreamweaver创建站点45
2.5.5 情景应用五——Dreamweaver创建第一个PHP程序46
2.6 本章小结47
第3章 了解Web页面的设计48
3.1 XHTML基础49
3.1.1 XHTML语言的语法49
3.1.2 XHTML文件的结构51
3.1.3 编辑文字版面53
3.1.4 插入图像与链接55
3.1.5 编写XHTML表格57
3.1.6 设计XHTML表单58
3.1.7 情景应用一——编写用户注册信息页61
3.1.8 情景应用二:文件域上传文件62
3.2 CSS样式应用63
3.2.1 将CSS样式嵌入到HTML中63
3.2.2 CSS选择符65
3.2.3 常见的CSS样式属性67
3.2.4 情景应用——打造经典的导航栏72
3.3 设计页面布局74
3.3.1 <div>和<span>标记74
3.3.2 区块模型74
3.3.3 区块浮动75
3.3.4 情景应用——设置一行两列浮动布局77
3.4 实战练习78
3.4.1 CSS+DIV设计网站首页78
3.4.2 DIV标签设计论坛后台管理页面79
3.5 本章小结81
第1章 了解PHP18
1.1 什么是PHP19
1.2 选择PHP的理由19
1.3 如何学好编程22
1.4 准备PHP的开发条件24
1.4.1 下载PHP及相关软件24
1.4.2 代码编辑工具24
1.4.3 下载PHP用户手册26
1.5 本章小结26
第2章 准备开发PHP的条件27
2.1 AppServ—Windows版PHP集成化安装包28
2.1.1 用AppServ搭建PHP开发环境28
2.1.2 测试AppServ是否安装成功30
2.2 XAMPP—Linux版PHP集成化安装包31
2.2.1 用XAMPP搭建PHP开发环境32
2.2.2 在Linux操作系统下启动、停止XAMPP33
2.2.3 设置Linux版XAMPP中MySQL数据库root用户的密码33
2.2.4 在Linux操作系统下编写第一个PHP程序33
2.3 PHP开发环境的关键配置信息34
2.3.1 Apache服务器的基本配置34
2.3.2 PHP.INI文件的基本配置35
2.4 解决PHP的常见配置问题36
2.4.1 解决Apache服务器端口冲突36
2.4.2 更改Apache服务器默认存储的文件路径36
2.4.3 在PHP.INI文件中更改上传文件的大小37
2.4.4 增加PHP扩展模块37
2.4.5 检测PHP是否支持MySQL数据库38
2.5 Dreamweaver开发工具38
2.5.1 情景应用一——Dreamweaver中编码格式的选择38
2.5.2 情景应用二——Dreamweaver创建表格39
2.5.3 情景应用三——Dreamweaver创建表单43
2.5.4 情景应用四——Dreamweaver创建站点45
2.5.5 情景应用五——Dreamweaver创建第一个PHP程序46
2.6 本章小结47
第3章 了解Web页面的设计48
3.1 XHTML基础49
3.1.1 XHTML语言的语法49
3.1.2 XHTML文件的结构51
3.1.3 编辑文字版面53
3.1.4 插入图像与链接55
3.1.5 编写XHTML表格57
3.1.6 设计XHTML表单58
3.1.7 情景应用一——编写用户注册信息页61
3.1.8 情景应用二:文件域上传文件62
3.2 CSS样式应用63
3.2.1 将CSS样式嵌入到HTML中63
3.2.2 CSS选择符65
3.2.3 常见的CSS样式属性67
3.2.4 情景应用——打造经典的导航栏72
3.3 设计页面布局74
3.3.1 <div>和<span>标记74
3.3.2 区块模型74
3.3.3 区块浮动75
3.3.4 情景应用——设置一行两列浮动布局77
3.4 实战练习78
3.4.1 CSS+DIV设计网站首页78
3.4.2 DIV标签设计论坛后台管理页面79
3.5 本章小结81
第4章 PHP开发基础82
4.1 PHP的工作原理83
4.2 学习运用代码注释83
4.2.1 使用PHP注释84
4.2.2 使用HTML注释84
4.2.3 有效使用注释85
4.3 PHP的常量应用85
4.3.1 声明和使用常量85
4.3.2 预定义常量87
4.4 PHP的变量应用88
4.4.1 理解变量88
4.4.2 声明变量88
4.4.3 变量作用域89
4.4.4 可变变量91
4.5 PHP的数据类型92
4.5.1 标量数据类型92
4.5.2 复合数据类型96
4.5.3 特殊数据类型97
4.5.4 转换数据类型98
4.5.5 检测数据类型100
4.6 PHP的运算符101
4.6.1 算术运算符101
4.6.2 字符串运算符102
4.6.3 赋值运算符102
4.6.4 位运算符103
4.6.5 递增或递减运算符103
4.6.6 逻辑运算符104
4.6.7 比较运算符105
4.6.8 三元运算符105
4.6.9 运算符的使用规则106
4.7 PHP的自定义函数107
4.7.1 定义和调用函数108
4.7.2 在函数间传递参数109
4.7.3 函数的返回值110
4.8 实战练习111
4.8.1 网站中最新动态模块的中文字符串截取111
4.8.2 论坛发布内容模块中对内容的格式化输出112
4.9 本章小结113
第5章 PHP流程控制语句115
5.1 程序三种控制结构116
5.1.1 顺序结构116
5.1.2 选择(分支)结构116
5.1.3 循环结构116
5.2 条件控制语句117
5.2.1 if条件控制语句117
5.2.2 switch多分支语句119
5.2.3 情景应用一——if语句判断美女征婚条件121
5.2.4 情景应用二——switch网页框架122
5.3 循环控制语句123
5.3.1 while循环语句124
5.3.2 do...while循环语句124
5.3.3 for循环语句125
5.3.4 foreach循环语句127
5.3.5 情景应用一——while语句循环读取数据库中数据128
5.3.6 情景应用二——for循环语句开发一个乘法口诀表129
5.4 跳转语句130
5.4.1 break跳转语句130
5.4.2 continue跳转语句131
5.4.3 return跳转语句132
5.5 包含语句133
5.5.1 include()语句133
5.5.2 require()语句134
5.5.3 include_once()语句135
5.5.4 require_once()语句135
5.5.5 include()语句和require()语句的区别136
5.5.6 include_once()语句和require_once()语句的区别138
5.6 实战练习138
5.6.1 删除数据库中指定的数据表138
5.6.2 for循环语句实现多图片上传139
5.7 本章小结140
第6章 字符串操作141
6.1 初识字符串142
6.2 转义、还原字符串142
6.3 截取字符串143
6.4 分割、合成字符串145
6.5 替换字符串146
6.5.1 str_ireplace()函数146
6.5.2 substr_replace()函数148
6.6 检索字符串148
6.6.1 strstr()函数148
6.6.2 substr_count()函数149
6.7 去掉字符串首尾空格和特殊字符150
6.7.1 ltrim()函数150
6.7.2 rtrim()函数151
6.7.3 trim()函数152
6.8 字符串与HTML转换152
6.9 情景应用154
6.9.1 超长文本的分页输出154
6.9.2 查询关键字描红155
6.9.3 购物车中数据的读取156
6.10 实战练习157
6.10.1 PHP 5新型字符串输出XML数据信息157
6.10.2 图像验证码的相关操作158
6.11 本章小结159
第7章 正则表达式160
7.1 什么是正则表达式161
7.2 正则表达式的语法规则162
7.2.1 行定位符(^和$)162
7.2.2 单词定界符(\b、\B)162
7.2.3 字符类([ ])163
7.2.4 选择字符(|)163
7.2.5 连字符(-)163
7.2.6 排除字符([^])164
7.2.7 限定符(? * + {n,m})164
7.2.8 点号字符(.)164
7.2.9 转义字符(\)165
7.2.10 反斜线(\)165
7.2.11 括号字符(())166
7.2.12 情景应用一——整合实用的正则表达式166
7.2.13 情景应用二——调用正则表达式验证中文168
7.3 PCRE兼容正则表达式函数169
7.3.1 字符串的匹配与查找169
7.3.2 情景应用一——应用正则表达式匹配电话号码格式170
7.3.3 字符串的替换172
7.3.4 情景应用二——应用正则表达式实现UBB使用帮助173
7.3.5 字符串的分割173
7.4 实战练习174
7.4.1 正则表达式验证用户
7.4.1 注册信息的合理性174
7.4.2 正则表达式验证提交的
7.4.1 购买数量是否是正整数176
7.5 本章小结177
第8章 初探数组178
8.1 数组概述179
8.2 数组类型179
8.3 声明数组180
8.3.1 用户创建数组180
8.3.2 函数创建数组181
8.3.3 创建二维数组181
8.4 遍历、输出数组182
8.4.1 遍历数组183
8.4.2 输出数组元素184
8.5 PHP的数组函数185
8.5.1 统计数组元素个数185
8.5.2 向数组中添加元素185
8.5.3 获取数组中最后一个元素186
8.5.4 删除数组中重复元素186
8.5.5 获取数组中指定元素的键名186
8.5.6 字符串与数组的转换187
8.5.7 情景应用——读取网上调查中的数据188
8.6 PHP的全局数组189
8.6.1 $_SERVER[ ]全局数组189
8.6.2 $_GET[ ]和$_POST[ ]全局数组190
8.6.3 $_COOKIE全局数组190
8.6.4 $_ENV[ ]全局数组191
8.6.5 $_REQUEST[ ]全局数组191
8.6.6 $_SESSION[ ]全局数组191
8.6.7 $_FILES[ ]全局数组191
8.6.8 情景应用——$_FILES[ ]全局数组在文件上传中的应用191
8.7 实战练习193
8.7.1 生成在线考试题193
8.7.2 通过获取客户端IP地址限制投票次数193
8.8 本章小结195
第9章 日期与时间196
9.1 PHP的时间观念197
9.1.1 在PHP.INI文件中设置时区197
9.1.2 通过date_default_timezone_set函数设置时区197
9.2 UNIX时间戳198
9.2.1 获取任意日期、时间的时间戳198
9.2.2 获取当前时间戳199
9.2.3 日期、时间转换为UNIX时间戳199
9.3 日期和时间处理201
9.3.1 格式化日期和时间201
9.3.2 获取日期和时间信息202
9.3.3 检验日期和时间的有效性203
9.4 情景应用204
9.4.1 获取系统当前时间和时间戳204
9.4.2 比较两个时间的大小204
9.4.3 倒计时205
9.5 实战练习20
9.5.1 计算程序的运行时间205
9.5.2 网页闹钟206
9.6 本章小结207
第二篇 核心篇
第10章 文件和目录处理技术210
10.1 基本的文件处理技术211
10.1.1 打开一个文件211
10.1.2 读取文件内容214
10.1.3 向文件中写入数据218
10.1.4 关闭文件指针220
10.2 目录操作技术220
10.2.1 打开指定目录220
10.2.2 读取目录结构221
10.2.3 关闭目录指针222
10.3 文件的上传技术223
10.3.1 开启文件上传功能223
10.3.2 全局变量$_FILES应用224
10.3.3 将上传文件移动到指定 目录225
10.3.4 文件下载技术226
10.4 情景应用227
10.4.1 通过文本文件统计网站访问量227
10.4.2 规范化的文件上传229
10.5 实战练习231
10.5.1 从文本文件中读取注册服务条款231
10.5.2 规范化的多文件上传232
10.6 本章小结233
第11章 图形图像处理技术234
11.1 了解GD2函数库235
11.2 设置GD2函数库235
11.3 学习常用的图像处理技术235
11.3.1 创建画布236
11.3.2 颜色处理237
11.3.3 绘制文字237
11.3.4 输出图像239
11.3.5 销毁图像240
11.3.6 情景应用一——在照片上书写文字240
11.3.7 情景应用二——GD2函数生成图像验证码241
11.4 运用Jpgraph类库绘制 图像242
11.4.1 Jpgraph类库简介242
11.4.2 Jpgraph的安装242
11.4.3 情景应用一——柱状图展示 2010年第一季度编程词典销量243
11.4.4 情景应用二——折线图分析 2010年公司销售额245
11.4.5 情景应用三——多饼形图 分析2010年图书 销量246
11.5 实战练习248
11.5.1 GD2函数生成带有干扰线的图像验证码248
11.5.2 Jpgraph创建折线图分析图书销售走势249
11.5.3 Jpgraph创建3D饼形图展示部门业绩比较250
11.6 本章小结251
第12章 Cookie和会话控制252
12.1 会话的操作253
12.1.1 创建会话253
12.1.2 配置PHP的会话255
12.2 会话的高级应用259
12.2.1 SESSION临时文件259
12.2.2 SESSION缓存259
12.2.3 SESSION数据库存储261
12.3 Cookie的操作263
12.3.1 设置Cookie264
12.3.2 访问Cookie265
12.3.3 删除Cookie266
12.4 情景应用267
12.4.1 登录验证267
12.4.2 Cookie自动登录269
12.5 实战练习270
12.5.1 防止页面刷新270
12.5.2 控制客户端Cookie271
12.6 本章小结272
第13章 面向对象273
13.1 一切皆是对象274
13.1.1 什么是类274
13.1.2 对象的由来274
13.1.3 面向对象的特点275
13.2 类的声明275
13.2.1 类的定义275
13.2.2 成员属性276
13.2.3 成员方法277
13.3 类的实例化277
13.3.1 创建对象278
13.3.2 访问类中成员278
13.3.3 特殊的访问方法——“$this”和“::”279
13.3.4 构造方法和析构方法280
13.4 面向对象的封装特性281
13.4.1 public(公共成员)282
13.4.2 private(私有成员)282
13.4.3 protected(保护成员)283
13.5 面向对象的继承特性283
13.5.1 类的继承——extends关键字283
13.5.2 类的继承——parent::关键字284
13.5.3 覆盖父类方法285
13.6 抽象类和接口286
13.6.1 抽象类286
13.6.2 接口287
13.7 面向对象的多态性289
13.7.1 通过继承实现多态289
13.7.2 通过接口实现多态290
13.8 面向对象的关键字290
13.8.1 final关键字291
13.8.2 static关键字——声明静态类成员291
13.8.3 clone关键字——克隆 对象292
13.8.4 对象比较293
13.8.5 instanceof关键字——对象 类型检测293
13.9 面向对象的魔术方法293
13.9.1 _set()和_get()方法294
13.9.2 _isset()和_unset()方法294
13.9.3 _call()方法294
12.9.4 _toString()方法295
13.9.5 _autoload()方法295
13.9.6 情景应用一——封装一个数据库连接类296
13.9.7 情景应用二——封装一个 数据库操作类297
13.10 实战练习298
13.10.1 分页类299
13.10.2 万用表格300
13.11 本章小结301
第14章 MySQL数据库设计302
14.1 MySQL概述303
14.1.1 MySQL的特点303
14.1.2 SQL和MySQL303
14.2 MySQL服务器的启动和 关闭304
14.2.1 启动MySQL服务器304
14.2.2 连接MySQL服务器305
14.2.3 关闭MySQL服务器305
14.3 操作MySQL数据库306
14.3.1 创建新数据库306
14.3.2 选择指定数据库306
14.3.3 删除指定数据库306
14.4 操作MySQL数据表307
14.4.1 创建一个表307
14.4.2 查看数据表结构308
14.4.3 修改数据表结构309
14.4.4 重命名数据表310
14.4.5 删除指定数据表310
14.5 操作MySQL数据311
14.5.1 向数据表中添加数据(INSERT)311
14.5.2 更新数据表中数据(UPDATE)312
14.5.3 删除数据表中数据(DELETE)312
14.5.4 查询数据表中数据313
14.5.5 情景应用一——数据 排序316
14.5.6 情景应用二——limit控制输出数据的开始位置和记录数316
14.6 MySQL数据类型316
14.6.1 数字类型317
14.6.2 字符串类型317
14.6.3 日期和时间数据类型319
14.7 用phpMyAdmin管理MySQL数据库319
14.7.1 管理数据库319
14.7.2 管理数据表320
14.7.3 管理数据记录322
14.7.4 导入/导出数据324
14.8 实战练习325
14.8.1 批量添加记录(LOAD DATA和MYSQLIMPORT)325
14.8.2 在phpMyAdmin中重置MySQL服务器登录 密码326
14.9 本章小结326
第15章 数据库编程技术327
15.1 PHP操作MySQL数据库的步骤328
15.2 PHP操作MySQL数据库的方法329
15.2.1 mysql_connect()函数连接MySQL服务器329
15.2.2 mysql_select_db()函数选择MySQL数据库330
15.2.3 mysql_query()函数执行 SQL语句330
15.2.4 mysql_fetch_array()函数将结果集返回到数组中331
15.2.5 mysql_fetch_row()函数从 结果集中获取一行作为枚举数组333
15.2.6 mysql_num_rows()函数获取 查询结果集中的记录数333
15.3 管理MySQL数据库中的 数据334
15.3.1 向数据库中添加数据334
15.3.2 编辑数据库数据335
15.3.3 从数据库中删除数据336
15.3.4 批量数据操作336
15.4 情景应用337
15.4.1 通用查询337
15.4.2 分组统计338
15.4.3 对查询结果分页显示339
15.4.4 站内搜索340
15.5 实战练习341
15.5.1 对查询结果进行跳转 分页显示341
15.5.2 高级查询341
15.6 本章小结342
第三篇 高级篇
第16章 PDO数据库抽象层346
16.1 什么是PDO347
16.1.1 PDO概述347
16.1.2 PDO特点347
16.1.3 安装PDO347
16.2 PDO连接数据库348
16.2.1 PDO构造函数348
16.2.2 情景应用一——连接MySQL数据库348
16.2.3 情景应用二——连接MS SQL Server数据库349
16.2.4 情景应用三——连接 Oracle数据库350
16.3 PDO中执行SQL语句350
16.3.1 exec()方法351
16.3.2 query()方法351
16.3.3 预处理语句——prepare() 和execute()352
16.3.4 情景应用一——通过PDO 向数据库中添加数据353
16.3.5 情景应用二——通过PDO 更新数据库中数据354
16.4 PDO中获取结果集355
16.4.1 fetch()方法355
16.4.2 fetchAll()方法357
16.4.3 fetchColumn()方法358
16.5 PDO中捕获SQL语句中的错误359
16.5.1 使用默认模式——PDO::ERRMODE_SILENT359
16.5.2 使用警告模式——PDO::ERRMODE_WARNING360
16.5.3 使用异常模式——PDO:: ERRMODE_EXCEPTION361
16.6 PDO中错误处理362
16.6.1 errorCode()方法362
16.6.2 errorInfo()方法363
16.7 PDO中事务处理364
16.8 PDO中存储过程366
16.9 实战练习367
16.9.1 PDO读取MS SQL Server数据库中数据367
16.9.2 PDO读取Oracle数据库中数据368
16.10 本章小结369
第17章 ADODB数据库抽象层370
17.1 ADODB概述371
17.1.1 ADODB的优点与缺点371
17.1.2 ADODB的安装与操作 流程371
17.2 连接数据库系统和数据库372
17.2.1 连接数据库系统 ——ADONewConnection()函数372
17.2.2 数据库持久化连接——PConnect()函数372
17.2.3 数据库非持久化连接——Connect()函数372
17.2.4 情景应用一——ADODB 连接MySQL数据库373
17.2.5 情景应用二——ADODB连接Access数据库374
17.2.6 情景应用三——ADODB 连接MS SQL Server数据库374
17.2.7 情景应用四——ADODB连接Oracle数据库375
17.3 通过公共变量控制数据的 存取方式376
17.4 ADODB执行SQL语句377
17.4.1 执行SQL语句——execute()函数377
17.4.2 控制SELECT查询语句的起始位置——SelectLimit()函数378
17.4.3 添加、更新数据
——GetInsertSQL()、GetUpdateSQL()函数379
17.4.4 操作SQL语句的其他 方法380
17.5 ADODB控制结果集380
17.5.1 控制指针的方法381
17.5.2 控制结果集内容的方法382
17.5.3 日期格式和数据类型的转换383
17.6 ADODB中的分页384
17.6.1 ADODB分页函数384
17.6.2 一个小巧的分页函数—— ADODB_Pager()函数385
17.7 ADODB中的错误处理386
17.7.1 ADODB中的错误处理函数386
17.7.2 ADODB中自定义的错误 处理机制387
17.7.3 情景应用——通过日志文件存储错误信息388
17.8 ADODB中的事务处理389
17.9 实战练习390
17.9.1 封装ADODB连接 数据库类390
17.9.2 封装ADODB操作数据库类391
17.9.3 封装ADODB分页类392
17.9.4 通过事务处理机制保证 数据转换的顺利完成393
17.10 本章小结395
第18章 PHP的字符编码396
18.1 了解网页字符编码397
18.1.1 ASCII 字符集397
18.1.2 ISO 8859 字符集397
18.1.3 GB2312与GBK编码398
18.1.4 Unicode字符集398
18.1.5 UTF-8编码398
18.2 PHP网页的字符编码399
18.2.1 设置编码格式399
18.2.2 转换编码格式400
18.2.3 检测字符串的编码402
18.3 PHP开发中的乱码问题403
18.3.1 解决页面中的乱码问题403
18.3.2 数据库中的字符集编码问题405
18.3.3 避免截取中文字符串时出现乱码406
18.4 PHP区域化设置407
18.4.1 PHP网页的区域化407
18.4.2 使用setlocale()函数设置 区域化408
18.5 实战练习409
18.5.1 避免截取超长文本时出现乱码409
18.5.2 了解PHP编码规则410
18.5.3 了解PHP编码风格410
18.6 本章小结412
第19章 程序调试与错误处理413
19.1 基本调试策略414
19.2 常见错误分析414
19.2.1 语法错误414
19.2.2 定义错误417
19.2.3 逻辑错误418
19.2.4 运行错误419
19.2.5 环境错误421
19.3 PHP.INI中的错误处理机制422
19.3.1 控制错误显示及 显示方式423
19.3.2 控制错误的级别423
19.4 程序调试方法424
19.4.1 应用DIE语句调试424
19.4.2 应用mysql_error()语句输出错误信息425
19.4.3 应用try{}catch{}M语句抛出并捕获异常425
19.5 错误处理技巧427
19.5.1 隐藏错误427
19.5.2 自定义错误页面427
19.5.3 延长服务器执行时间——处理超时错误428
19.6 情景应用429
19.6.1 如何分析、解决PHP与MySQL连接错误429
19.6.2 解决数据库乱码问题431
19.7 实战练习432
19.7.1 封装属于自己的异常处理类432
19.7.2 使用错误处理器 记录日志433
19.8 本章小结434
第20章 Smarty模板技术435
20.1 走进Smarty模板引擎436
20.1.1 Smarty模板引擎下载437
20.1.2 Smarty模板引擎安装437
20.1.3 Smarty模板引擎配置437
20.1.4 情景应用一——走进Smarty模板引擎439
20.1.5 情景应用二——封装Smarty模板的配置方法440
20.2 Smarty模板设计——静态页处理442
20.2.1 基本语法(注释、函数和 属性)442
20.2.2 Smarty模板设计变量443
20.2.3 变量调节器444
20.2.4 情景应用一——Smarty模板中日期、时间的格式化输出445
20.2.5 情景应用二——通过组合修改器分隔多个变量 调节器445
20.2.6 内建函数(动态文件、 模板文件的包含和流程控制语句)446
20.2.7 情景应用三——Smarty模板创建网页框架448
20.2.8 情景应用四——section语句循环输出数据库中的数据450
20.2.9 自定义函数451
20.2.10 配置文件454
20.3 Smarty程序设计——动态文件操作455
20.3.1 SMARTY_PATH常量455
20.3.2 Smarty程序设计变量455
20.3.3 Smarty方法456
20.3.4 Smarty缓存456
20.3.5 情景应用——开启网站注册页面的缓存458
20.4 实战练习460
20.4.1 Smarty+ADODB完成数据的分页输出460
20.4.2 Smarty中通过truncate方法截取字符串461
20.4.3 用Register_Function方法注册模板函数462
20.4.4 Smarty模板中的关键字描红464
20.5 本章小结464
第四篇 实战篇
第21章 企业网站开发模板466
21.1 明日企业网概述467
21.2 开发背景467
21.3 需求分析467
21.4 功能结构468
21.5 数据库设计469
21.5.1 数据库概念设计469
21.5.2 创建数据库及数据表470
21.6 技术攻关471
21.6.1 Smarty模板471
21.6.2 最简单的网页框架473
21.6.3 ADODB类库473
21.6.4 封装分页类474
21.7 首页设计475
21.7.1 首页概述475
21.7.2 首页技术分析476
21.7.3 首页的实现过程476
21.8 产品展示设计478
21.8.1 产品展示概述478
21.8.2 产品展示技术分析478
21.8.3 产品展示实现过程479
21.9 后台管理系统设计480
21.9.1 后台管理系统概述481
21.9.2 后台管理系统技术分析481
21.9.3 后台管理系统实现过程482
21.10 程序调试与错误处理486
21.10.1 SQL语句的返回机制486
21.10.2 错误处理487
21.11 开发总结488
附录 专业术语表489