第1部分 基础篇
第1堂课 PHP概述3
视频讲解:110分钟
1.1 怎样学好PHP4
1.1.1 什么是PHP4
1.1.2 PHP的优势4
1.1.3 如何学好编程6
1.1.4 下载PHP及相关软件7
1.1.5 代码编辑工具8
1.1.6 下载PHP用户手册9
1.2 环境的搭建9
1.2.1 AppServ——Windows版PHP集成化安装包9
1.2.2 XAMPP——Linux版PHP集成化安装包11
1.3 PHP开发环境的关键配置信息13
1.3.1 Apache服务器的基本配置13
1.3.2 php.ini文件的基本配置13
1.4 解决PHP的常见配置问题14
1.4.1 解决Apache服务器端口冲突15
1.4.2 设置PHP的系统当前时间15
1.4.3 增加PHP扩展模块15
1.5 照猫画虎——基本功训练15
1.5.1 基本功训练1——测试PHP环境是否搭建成功15
1.5.2 基本功训练2——第一次登录phpMyAdmin图形化管理工具16
1.5.3 基本功训练3——浏览PHP环境配置说明16
1.5.4 基本功训练4——解析PHP环境搭建的四大目录17
1.5.5 基本功训练5——编辑第一个PHP程序18
1.6 情景应用——拓展与实践19
1.6.1 情景应用1——输出系统的当前时间19
1.6.2 情景应用2——输出“明日科技欢迎您!”20
1.6.3 情景应用3——输出一个漂亮的图片20
1.6.4 情景应用4——更改Apache服务器的端口号为8221
1.6.5 情景应用5——Apache端口号修改后运行第一个PHP程序21
1.7 自我测试22
1.8 行动指南23
1.9 成功可以复制——PHP开山鼻祖
Rasmus Lerdorf24
第2堂课 PHP基础25
视频讲解:140分钟
2.1 PHP工作原理26
2.2 PHP标记27
2.3 代码注释27
2.3.1 使用PHP注释27
2.3.2 有效使用注释28
2.4 PHP常量29
2.4.1 声明和使用常量29
2.4.2 预定义常量30
2.5 PHP变量31
2.5.1 声明变量31
2.5.2 变量作用域33
2.5.3 可变变量35
2.6 PHP数据类型35
2.6.1 标量数据类型35
2.6.2 复合数据类型38
2.6.3 特殊数据类型39
2.6.4 转换数据类型39
2.6.5 检测数据类型40
2.7 PHP的运算符41
2.7.1 算术运算符41
2.7.2 字符串运算符42
2.7.3 赋值运算符42
2.7.4 位运算符43
2.7.5 递增或递减运算符43
2.7.6 逻辑运算符44
2.7.7 比较运算符45
2.7.8 三元运算符46
2.7.9 运算符的使用规则46
2.8 照猫画虎——基本功训练47
2.8.1 基本功训练1——获取当前执行文件名称47
2.8.2 基本功训练2——加法计算器48
2.8.3 基本功训练3——输出姚明的个人信息48
2.8.4 基本功训练4——比较某一天的产品销量49
2.8.5 基本功训练5——根据工资多少判断购物地点50
2.9 情景应用——拓展与实践50
2.9.1 情景应用1——在留言板中输出系统当前时间50
2.9.2 情景应用2——根据奇偶天数安排工作任务51
2.9.3 情景应用3——计算长方形的面积52
2.9.4 情景应用4——检测变量是否为整型52
2.9.5 情景应用5——通过数据递增运算统计网站访问量53
2.9.6 情景应用6——输出学生的考试成绩54
2.10 自我测试54
2.11 行动指南55
2.12 成功可以复制——杀毒王王江民56
第1部分 基础篇
第1堂课 PHP概述3
视频讲解:110分钟
1.1 怎样学好PHP4
1.1.1 什么是PHP4
1.1.2 PHP的优势4
1.1.3 如何学好编程6
1.1.4 下载PHP及相关软件7
1.1.5 代码编辑工具8
1.1.6 下载PHP用户手册9
1.2 环境的搭建9
1.2.1 AppServ——Windows版PHP集成化安装包9
1.2.2 XAMPP——Linux版PHP集成化安装包11
1.3 PHP开发环境的关键配置信息13
1.3.1 Apache服务器的基本配置13
1.3.2 php.ini文件的基本配置13
1.4 解决PHP的常见配置问题14
1.4.1 解决Apache服务器端口冲突15
1.4.2 设置PHP的系统当前时间15
1.4.3 增加PHP扩展模块15
1.5 照猫画虎——基本功训练15
1.5.1 基本功训练1——测试PHP环境是否搭建成功15
1.5.2 基本功训练2——第一次登录phpMyAdmin图形化管理工具16
1.5.3 基本功训练3——浏览PHP环境配置说明16
1.5.4 基本功训练4——解析PHP环境搭建的四大目录17
1.5.5 基本功训练5——编辑第一个PHP程序18
1.6 情景应用——拓展与实践19
1.6.1 情景应用1——输出系统的当前时间19
1.6.2 情景应用2——输出“明日科技欢迎您!”20
1.6.3 情景应用3——输出一个漂亮的图片20
1.6.4 情景应用4——更改Apache服务器的端口号为8221
1.6.5 情景应用5——Apache端口号修改后运行第一个PHP程序21
1.7 自我测试22
1.8 行动指南23
1.9 成功可以复制——PHP开山鼻祖
Rasmus Lerdorf24
第2堂课 PHP基础25
视频讲解:140分钟
2.1 PHP工作原理26
2.2 PHP标记27
2.3 代码注释27
2.3.1 使用PHP注释27
2.3.2 有效使用注释28
2.4 PHP常量29
2.4.1 声明和使用常量29
2.4.2 预定义常量30
2.5 PHP变量31
2.5.1 声明变量31
2.5.2 变量作用域33
2.5.3 可变变量35
2.6 PHP数据类型35
2.6.1 标量数据类型35
2.6.2 复合数据类型38
2.6.3 特殊数据类型39
2.6.4 转换数据类型39
2.6.5 检测数据类型40
2.7 PHP的运算符41
2.7.1 算术运算符41
2.7.2 字符串运算符42
2.7.3 赋值运算符42
2.7.4 位运算符43
2.7.5 递增或递减运算符43
2.7.6 逻辑运算符44
2.7.7 比较运算符45
2.7.8 三元运算符46
2.7.9 运算符的使用规则46
2.8 照猫画虎——基本功训练47
2.8.1 基本功训练1——获取当前执行文件名称47
2.8.2 基本功训练2——加法计算器48
2.8.3 基本功训练3——输出姚明的个人信息48
2.8.4 基本功训练4——比较某一天的产品销量49
2.8.5 基本功训练5——根据工资多少判断购物地点50
2.9 情景应用——拓展与实践50
2.9.1 情景应用1——在留言板中输出系统当前时间50
2.9.2 情景应用2——根据奇偶天数安排工作任务51
2.9.3 情景应用3——计算长方形的面积52
2.9.4 情景应用4——检测变量是否为整型52
2.9.5 情景应用5——通过数据递增运算统计网站访问量53
2.9.6 情景应用6——输出学生的考试成绩54
2.10 自我测试54
2.11 行动指南55
2.12 成功可以复制——杀毒王王江民56
第3堂课 PHP函数59
视频讲解:100分钟
3.1 PHP函数介绍60
3.1.1 定义和调用函数60
3.1.2 在函数间传递参数60
3.1.3 从函数中返回值62
3.1.4 变量函数62
3.1.5 对函数的引用63
3.1.6 取消引用63
3.2 PHP变量函数库64
3.3 PHP字符串函数库65
3.4 PHP日期时间函数库66
3.5 PHP数学函数库67
3.6 PHP文件系统函数库68
3.7 MySQL函数库70
3.8 照猫画虎——基本功训练71
3.8.1 基本功训练1——判断用户提交用户名是否为空71
3.8.2 基本功训练2——打印输出员工的个人信息72
3.8.3 基本功训练3——输出公司的企业文化72
3.8.4 基本功训练4——计算密码长度73
3.8.5 基本功训练5——验证输入时间是否有效73
3.8.6 基本功训练6——获取商品销量的最高值74
3.8.7 基本功训练7——读取文本文件中的数据75
3.9 情景应用——拓展与实践76
3.9.1 情景应用1——控制帖子标题的输出长度76
3.9.2 情景应用2——去除用户填写注册信息中的空格77
3.9.3 情景应用3——对关键字进行描红78
3.9.4 情景应用4——网页闹钟79
3.9.5 情景应用5——幸运数字抽奖80
3.9.6 情景应用6——数字验证码80
3.9.7 情景应用7——文本文件统计网站访问量81
3.9.8 情景应用8——购物车中商品的输出83
3.9.9 情景应用9——中文图像验证码83
3.10 自我测试84
3.11 行动指南85
3.12 成功可以复制——缔造华人的硅谷传奇杨致远86
第4堂课 PHP流程控制语句89
视频讲解:95分钟
4.1 程序的3种控制结构90
4.1.1 顺序结构90
4.1.2 选择(分支)结构90
4.1.3 循环结构91
4.2 条件控制语句91
4.2.1 if条件控制语句92
4.2.2 switch多分支语句93
4.3 循环控制语句95
4.3.1 while循环语句95
4.3.2 do…while循环语句96
4.3.3 for循环语句97
4.3.4 foreach循环语句98
4.4 跳转语句100
4.4.1 break跳转语句100
4.4.2 continue跳转语句101
4.5 包含语句102
4.5.1 include()语句103
4.5.2 require()语句103
4.5.3 include_once()语句104
4.5.4 require_once()语句105
4.5.5 include()语句和require()语句的区别106
4.6 照猫画虎——基本功训练107
4.6.1 基本功训练1——对与错的判断107
4.6.2 基本功训练2——for语句计算阶乘107
4.6.3 基本功训练3——if语句判断闰年108
4.6.4 基本功训练4——用switch语句计算商品的折扣价格108
4.6.5 基本功训练5——向一个循环语句中发布终止指令109
4.7 情景应用——拓展与实践110
4.7.1 情景应用1——使用if语句判断美女征婚条件110
4.7.2 情景应用2——使用switch语句定制网页每日问候语112
4.7.3 情景应用3——使用while语句循环读取数组中数据113
4.7.4 情景应用4——switch网页框架114
4.7.5 情景应用5——使用for循环语句实现多图片上传115
4.8 自我测试116
4.9 行动指南118
4.10 成功可以复制——BEA创始人之一庄思浩119
第5堂课 PHP数组应用121
视频讲解:105分钟
5.1 数组概述122
5.2 数组类型122
5.3 声明数组123
5.3.1 用户创建数组123
5.3.2 函数创建数组124
5.3.3 创建二维数组124
5.4 遍历、输出数组125
5.4.1 遍历数组125
5.4.2 输出数组元素128
5.5 PHP数组函数128
5.5.1 统计数组元素个数128
5.5.2 向数组中添加元素129
5.5.3 获取数组中最后一个元素129
5.5.4 删除数组中重复元素129
5.5.5 获取数组中指定元素的键名130
5.6 PHP全局数组131
5.6.1 $_SERVER[ ]全局数组131
5.6.2 $_GET[ ]和$_POST[ ]全局数组132
5.6.3 $_COOKIE全局数组133
5.6.4 $_ENV[ ]全局数组133
5.6.5 $_REQUEST[ ]全局数组133
5.6.6 $_SESSION[ ]全局数组134
5.6.7 $_FILES[ ]全局数组134
5.7 照猫画虎——基本功训练134
5.7.1 基本功训练1——输出数组中元素值134
5.7.2 基本功训练2——遍历数组135
5.7.3 基本功训练3——foreach语句遍历数组135
5.7.4 基本功训练4——将数组元素转换成字符串136
5.7.5 基本功训练5——去除数组中重复的元素136
5.7.6 基本功训练6——向数组中添加元素137
5.7.7 基本功训练7——获取服务器端的IP地址137
5.8 情景应用——拓展与实践138
5.8.1 情景应用1——字符串数组排序138
5.8.2 情景应用2——获取用户注册信息139
5.8.3 情景应用3——获取上传文件的数据140
5.8.4 情景应用4——生成在线考试题140
5.8.5 情景应用5——通过客户端IP地址限制投票次数141
5.9 自我测试142
5.10 行动指南143
5.11 成功可以复制——迅雷创始人
邹胜龙144
第6堂课 PHP与Web页面交互147
视频讲解:225分钟
6.1 表单概述148
6.1.1 创建表单148
6.1.2 添加表单元素148
6.1.3 定义表单数据提交方法152
6.2 获取表单提交的数据154
6.2.1 $_GET[]获取表单提交数据154
6.2.2 $_POST[]获取表单提交数据154
6.3 获取超链接传递的数据155
6.3.1 通过超链接传递数据156
6.3.2 通过$_GET[]获取超级链接传递的数据156
6.3.3 对超链接传递的数据进行编码、解码157
6.4 了解JavaScript脚本158
6.4.1 JavaScript语言基础158
6.4.2 通过JavaScript脚本自定义函数160
6.4.3 JavaScript脚本嵌入方式161
6.4.4 JavaScript常用事件166
6.5 照猫画虎——基本功训练167
6.5.1 基本功训练1——设计一个用户登录表单167
6.5.2 基本功训练2——验证用户名和密码不能为空168
6.5.3 基本功训练3——输出用户登录信息169
6.5.4 基本功训练4——验证email地址格式是否正确171
6.5.5 基本功训练5——验证用户两次输入的密码是否一致172
6.6 情景应用——拓展与实践173
6.6.1 情景应用1——开发一个用户注册表单173
6.6.2 情景应用2——验证用户注册信息是否合理174
6.6.3 情景应用3——限制多行文本域输入的字符个数176
6.6.4 情景应用4——设置文本框的只读属性178
6.6.5 情景应用5——对超链接传递的数据进行编码179
6.7 自我测试179
6.8 行动指南180
6.9 成功可以复制——软件业的
华人教父王嘉廉181
第7堂课 MySQL数据库技术183
视频讲解:155分钟
7.1 MySQL概述184
7.1.1 MySQL的特点184
7.1.2 SQL和MySQL184
7.2 MySQL服务器的启动和关闭185
7.2.1 启动MySQL服务器185
7.2.2 连接MySQL服务器186
7.2.3 关闭MySQL服务器187
7.3 操作MySQL数据库187
7.3.1 创建新数据库187
7.3.2 选择指定数据库188
7.3.3 删除指定数据库188
7.4 操作MySQL数据表189
7.4.1 创建一个表189
7.4.2 查看数据表结构190
7.4.3 修改数据表结构191
7.4.4 重命名数据表192
7.4.5 删除指定数据表192
7.5 操作MySQL数据193
7.5.1 向数据表中添加数据193
7.5.2 更新数据表中数据193
7.5.3 删除数据表中数据194
7.5.4 查询数据表中数据194
7.6 MySQL数据类型197
7.6.1 数字类型197
7.6.2 字符串类型198
7.6.3 日期和时间数据类型199
7.7 phpMyAdmin管理MySQL数据库200
7.7.1 管理数据库200
7.7.2 管理数据表201
7.7.3 管理数据记录203
7.7.4 导入导出数据206
7.8 照猫画虎——基本功训练208
7.8.1 基本功训练1——创建db_book图书数据库208
7.8.2 基本功训练2——在db_book数据库中创建图书信息表tb_mrbook208
7.8.3 基本功训练3——向tb_mrbook表中添加数据209
7.8.4 基本功训练4——修改tb_mrbook表中的数据210
7.8.5 基本功训练5——删除tb_mrbook表中指定数据210
7.9 情景应用——拓展与实践211
7.9.1 情景应用1——通过命令模式备份和恢复数据库211
7.9.2 情景应用2——MySQL的存储过程213
7.9.3 情景应用3——使用phpMyAdmin设置编码格式214
7.9.4 情景应用4——通过phpMyAdmin添加服务器新用户215
7.9.5 情景应用5——在phpMyAdmin中重置MySQL服务器登录密码216
7.10 自我测试217
7.11 行动指南218
7.12 成功可以复制——图文世界的缔造者约翰·沃洛克219
第8堂课 PHP数据库编程技术221
视频讲解:205分钟
8.1 PHP操作MySQL数据库的步骤222
8.2 PHP操作MySQL数据库的方法222
8.2.1 mysql_connect()函数连接MySQL服务器222
8.2.2 mysql_select_db()函数选择MySQL数据库223
8.2.3 mysql_query()函数执行SQL语句223
8.2.4 mysql_fetch_array()函数将结果集返回到数组中224
8.2.5 mysql_fetch_row()函数从结果集中获取一行作为枚举数组225
8.2.6 mysql_num_rows()函数获取查询结果集中的记录数226
8.2.7 mysql_free_result()函数释放内存227
8.2.8 mysql_close()函数关闭连接227
8.3 管理MySQL数据库中的数据228
8.3.1 向数据库中添加数据228
8.3.2 浏览数据库中的数据229
8.3.3 编辑数据库中的数据230
8.3.4 从数据库中删除数据231
8.3.5 批量数据操作233
8.4 照猫画虎——基本功训练234
8.4.1 基本功训练1——连接db_database08数据库234
8.4.2 基本功训练2——查询图书信息表中的前3条记录235
8.4.3 基本功训练3——对查询结果进行降序排列输出236
8.4.4 基本功训练4——更新指定图书的信息237
8.4.5 基本功训练5——删除指定的用户信息239
8.5 情景应用——拓展与实践240
8.5.1 情景应用1——用户注册模块240
8.5.2 情景应用2——用户登录模块242
8.5.3 情景应用3——浏览注册用户信息242
8.5.4 情景应用4——查询注册用户243
8.5.5 情景应用5——修改指定用户的注册信息244
8.5.6 情景应用6——分页浏览用户注册信息246
8.6 自我测试247
8.7 行动指南248
8.8 成功可以复制——射击游戏之父
约翰·卡马克249
第2部分 提高篇
第9堂课 Cookie与会话控制253
视频讲解:145分钟
9.1 会话的操作254
9.1.1 创建会话254
9.1.2 配置PHP的会话256
9.2 会话的高级应用257
9.2.1 SESSION临时文件257
9.2.2 SESSION缓存258
9.2.3 SESSION数据库存储259
9.3 Cookie的操作259
9.3.1 创建Cookie260
9.3.2 访问Cookie261
9.3.3 删除Cookie261
9.4 照猫画虎——基本功训练262
9.4.1 基本功训练1——初始化SESSION变量262
9.4.2 基本功训练2——通过SESSION变量在页面间传递数据262
9.4.3 基本功训练3——通过SESSION变量判断页面的访问权限263
9.4.4 基本功训练4——Cookie控制网页
访问时间264
9.4.5 基本功训练5——通过Cookie保存用户登录信息265
9.5 情景应用——拓展与实践266
9.5.1 情景应用1——对SESSION变量编码和解码266
9.5.2 情景应用2——通过SESSION变量屏蔽刷新页面对计数器的影响267
9.5.3 情景应用3——通过Cookie计算在线考试答题时间268
9.5.4 情景应用4——Cookie自动登录269
9.5.5 情景应用5——通过SESSION控制页面的背景色270
9.6 自我测试271
9.7 行动指南272
9.8 成功可以复制——微型博客创始人埃文·威廉姆斯273
第10堂课 字符串高级处理技术275
视频讲解:106分钟
10.1 初识字符串276
10.2 转义、还原字符串276
10.3 截取字符串277
10.4 分割、合成字符串278
10.5 替换字符串279
10.5.1 str_ireplace()函数279
10.5.2 substr_replace()函数280
10.6 检索字符串281
10.6.1 strstr()函数281
10.6.2 substr_count()函数281
10.7 去掉字符串首尾空格和特殊字符282
10.7.1 ltrim()函数282
10.7.2 rtrim()函数283
10.7.3 trim()函数283
10.8 字符串与HTML转换284
10.9 正则表达式284
10.9.1 什么是正则表达式284
10.9.2 正则表达式语法规则285
10.10 PCRE兼容正则表达式函数286
10.10.1 字符串的匹配与查找286
10.10.2 字符串的替换287
10.10.3 字符串的分割288
10.11 照猫画虎——基本功训练289
10.11.1 基本功训练1——在网页中直接输出HTML脚本289
10.11.2 基本功训练2——substr()函数截取超长字符串289
10.11.3 基本功训练3——统一英文注册用户首字母的大小写290
10.11.4 基本功训练4——货币数据的格式化输出291
10.11.5 基本功训练5——验证email地址格式是否正确291
10.11.6 基本功训练6——实现字符串的替换292
10.12 情景应用——拓展与实践293
10.12.1 情景应用1——在论坛的帖子对PHP脚本进行转换输出293
10.12.2 情景应用2——以省略模式输出论坛中最新动态标题293
10.12.3 情景应用3——对查询的关键字进行描红、加粗294
10.12.4 情景应用4——通过字符串截取控制图像验证码的输出295
10.12.5 情景应用5——验证上传文件的格式是否正确296
10.12.6 情景应用6——验证用户提交的数据是否是整数296
10.13 自我测试297
10.14 行动指南298
10.15 成功可以复制——善于抓住
时机的人徐少春299
第11堂课 日期和时间的处理技术301
视频讲解:108分钟
11.1 PHP的时间观念302
11.1.1 在php.ini文件中设置时区302
11.1.2 通过date_default_timezone_set函数设置时区302
11.2 UNIX时间戳302
11.2.1 获取任意日期、时间的时间戳303
11.2.2 获取当前时间戳303
11.2.3 日期、时间转换为UNIX时间戳304
11.3 日期和时间的处理304
11.3.1 格式化日期和时间305
11.3.2 获取日期和时间信息306
11.3.3 检验日期和时间的有效性307
11.4 照猫画虎——基本功训练308
11.4.1 基本功训练1——获取指定时间的UNIX时间戳308
11.4.2 基本功训练2——获取系统当前时间的时间戳308
11.4.3 基本功训练3——输出系统当前时间309
11.4.4 基本功训练4——倒计时309
11.4.5 基本功训练5——获取本地时间310
11.5 情景应用——拓展与实践310
11.5.1 情景应用1——比较两个时间的大小310
11.5.2 情景应用2——网页闹钟311
11.5.3 情景应用3——计算程序的运行时间311
11.5.4 情景应用4——输出中文格式的日期和时间312
11.5.5 情景应用5——检验日期和时间的有效性312
11.6 自我测试313
11.7 行动指南314
11.8 成功可以复制——C#语言之父
安德斯·海尔斯伯格315
第12堂课 图形图像处理技术317
视频讲解:125分钟
12.1 了解GD2函数库318
12.2 设置GD2函数库318
12.3 学习常用图像处理技术318
12.3.1 创建画布319
12.3.2 颜色处理319
12.3.3 绘制文字320
12.3.4 输出图像322
12.3.5 销毁图像323
12.4 运用Jpgraph类库绘制图像323
12.4.1 Jpgraph类库简介323
12.4.2 Jpgraph的安装323
12.4.3 Jpgraph创建3D饼形图展示部门业绩比较324
12.5 照猫画虎——基本功训练325
12.5.1 基本功训练1——绘制一个正方形325
12.5.2 基本功训练2——在画布中输出一行英文字符串326
12.5.3 基本功训练3——在背景图像上输出北京欢迎您326
12.5.4 基本功训练4——在照片上书写文字327
12.5.5 基本功训练5——Jpgraph创建折线图分析图书销售走势328
12.6 情景应用——拓展与实践329
12.6.1 情景应用1——GD2函数生成图像验证码329
12.6.2 情景应用2——通过图像显示密码安全强度330
12.6.3 情景应用3——通过柱状图展示2010年第一季度编程词典销量331
12.6.4 情景应用4——通过折线图分析2010年公司销售额333
12.6.5 情景应用5——通过饼形图区块分析2010年图书销量334
12.6.6 情景应用6——制作生活画册334
12.7 自我测试336
12.8 行动指南337
12.9 成功可以复制——因特网的点火人
马克·安德森338
第13堂课 文件目录处理技术341
视频讲解:95分钟
13.1 基本的文件处理技术342
13.1.1 打开一个文件342
13.1.2 读取文件内容344
13.1.3 向文件中写入数据347
13.1.4 关闭文件指针349
13.2 目录操作技术349
13.2.1 打开指定目录349
13.2.2 读取目录结构349
13.2.3 关闭目录指针350
13.3 文件的上传技术350
13.3.1 开启文件上传功能351
13.3.2 全局变量$_FILES应用351
13.3.3 将上传文件移动到指定目录353
13.3.4 文件下载技术354
13.4 照猫画虎——基本功训练355
13.4.1 基本功训练1——通过文本文件统计网站访问量355
13.4.2 基本功训练2——读取文本文件中存储的用户注册协议356
13.4.3 基本功训练3——通过文本文件存储网站访问记录356
13.4.4 基本功训练4——验证指定的目录是否存在357
13.4.5 基本功训练5——控制上传文件的大小和格式358
13.5 情景应用——拓展与实践359
13.5.1 情景应用1——规范化的文件上传359
13.5.2 情景应用2——规范化的多文件上传360
13.5.3 情景应用3——header()函数执行文件下载361
13.5.4 情景应用4——文本文件的分页输出362
13.5.5 情景应用5——将数据以二进制格式上传到数据库364
13.6 自我测试365
13.7 行动指南366
13.8 成功可以复制——知识改变命运、科技改变生活李彦宏367
第3部分 高级篇
第14堂课 面向对象的程序设计371
视频讲解:180分钟
14.1 一切皆是对象372
14.1.1 什么是类372
14.1.2 对象的由来372
14.1.3 面向对象的特点373
14.2 类的声明373
14.2.1 类的定义373
14.2.2 成员属性374
14.2.3 成员方法375
14.3 类的实例化375
14.3.1 创建对象375
14.3.2 访问类中成员376
14.3.3 特殊的访问方法——“$this”和“::”377
14.3.4 构造方法和析构方法378
14.4 面向对象的封装特性379
14.4.1 public(公共成员)379
14.4.2 private(私有成员)380
14.4.3 protected(保护成员)380
14.5 面向对象的继承特性381
14.5.1 类的继承——extends关键字381
14.5.2 类的继承——parent::关键字382
14.5.3 覆盖父类方法383
14.6 抽象类和接口384
14.6.1 抽象类384
14.6.2 接口385
14.7 面向对象的多态性387
14.7.1 通过继承实现多态387
14.7.2 通过接口实现多态388
14.8 面向对象的关键字388
14.8.1 final关键字388
14.8.2 static关键字——声明静态类成员389
14.8.3 clone关键字——克隆对象390
14.9 面向对象的魔术方法391
14.9.1 __set()和__get()方法391
14.9.2 __isset()和__unset()方法391
14.9.3 __call()方法392
14.9.4 __toString()方法392
14.9.5 __autoload()方法393
14.10 照猫画虎——基本功训练394
14.10.1 基本功训练1——编写一个矩形类394
14.10.2 基本功训练2——用构造方法初始化395
14.10.3 基本功训练3——this关键字的用途395
14.10.4 基本功训练4——方法参数传递396
14.10.5 基本功训练5——方法的覆盖397
14.11 情景应用——拓展与实践397
14.11.1 情景应用1——数据统计类中定义求数值平方的方法397
14.11.2 情景应用2——封装一个数据库连接类399
14.11.3 情景应用3——封装一个数据库操作类400
14.11.4 情景应用4——封装分页类401
14.11.5 情景应用5——封装特殊字符转义类402
14.12 自我测试403
14.13 行动指南404
14.14 成功可以复制——中国通信设备行业的领跑者任正非405
第15堂课 PHP与XML技术407
视频讲解:160分钟
15.1 XML的概述408
15.2 XML语法408
15.2.1 XML文档结构408
15.2.2 XML声明408
15.2.3 处理指令409
15.2.4 注释409
15.2.5 XML元素409
15.2.6 XML属性410
15.2.7 使用CDATA标记410
15.2.8 XML命名空间411
15.3 SimpleXML系列函数操作XML411
15.3.1 创建SimpleXML对象411
15.3.2 遍历所有子元素412
15.3.3 遍历所有属性413
15.3.4 访问特定节点元素和属性414
15.3.5 修改XML数据414
15.3.6 保存XML文档415
15.4 RSS阅读器416
15.4.1 RSS概述416
15.4.2 RSS 2.0的标准417
15.4.3 创建支持RSS阅读的站点419
15.5 照猫画虎——基本功训练422
15.5.1 基本功训练1——动态创建XML文档422
15.5.2 基本功训练2——动态读取XML文档424
15.5.3 基本功训练3——通过XPath查询XML中的数据426
15.5.4 基本功训练4——动态更新XML中的数据428
15.5.5 基本功训练5——动态删除XML中的数据430
15.6 情景应用——拓展与实践432
15.6.1 情景应用1——创建RSS阅读器框架432
15.6.2 情景应用2——树状导航菜单输出频道组和频道434
15.6.3 情景应用3——Ajax无刷新读取订阅信息435
15.6.4 情景应用4——添加频道组437
15.6.5 情景应用5——添加频道438
15.7 自我测试441
15.8 行动指南441
15.9 成功可以复制——中国网络游戏产业的
领军人陈天桥442
第16堂课 PDO数据库抽象层445
视频讲解:82分钟
16.1 什么是PDO446
16.1.1 PDO概述446
16.1.2 PDO特点446
16.1.3 安装PDO446
16.2 PDO连接数据库447
16.2.1 PDO构造函数447
16.2.2 DSN详解447
16.3 PDO中执行SQL语句448
16.3.1 exec()方法448
16.3.2 query()方法448
16.3.3 预处理语句——prepare()和execute()448
16.4 PDO中获取结果集449
16.4.1 fetch()方法449
16.4.2 fetchAll()方法450
16.4.3 fetchColumn()方法451
16.5 PDO中捕获SQL语句中的错误453
16.5.1 使用默认模式——PDO::ERRMODE_SILENT453
16.5.2 使用警告模式——PDO::ERRMODE_WARNING454
16.5.3 使用异常模式——PDO::ERRMODE_EXCEPTION455
16.6 PDO中错误处理456
16.6.1 errorCode()方法456
16.6.2 errorInfo()方法457
16.7 PDO中事务处理459
16.8 PDO中存储过程460
16.9 照猫画虎——基本功训练461
16.9.1 基本功训练1——连接MySQL数据库461
16.9.2 基本功训练2——通过PDO向数据库中添加数据462
16.9.3 基本功训练3——通过PDO浏览数据库中数据463
16.9.4 基本功训练4——通过PDO更新数据库中数据464
16.9.5 基本功训练5——连接MS SQL Server数据库466
16.10 情景应用——拓展与实践467
16.10.1 情景应用1——明日书店会员注册467
16.10.2 情景应用2——明日书店会员登录468
16.10.3 情景应用3——添加留言信息469
16.10.4 情景应用4——浏览客户留言470
16.10.5 情景应用5——查询留言内容471
16.11 自我测试472
16.12 行动指南473
16.13 成功可以复制——中国第一
程序员求伯君474
第17堂课 Smarty模板技术477
视频讲解:162分钟
17.1 Smarty模板引擎478
17.1.1 Smarty模板引擎下载478
17.1.2 Smarty模板引擎安装479
17.1.3 Smarty模板引擎配置479
17.1.4 走进Smarty模板引擎481
17.2 Smarty模板设计——静态页处理482
17.2.1 基本语法(注释、函数和属性)482
17.2.2 Smarty模板设计变量483
17.2.3 变量调节器484
17.2.4 内建函数(动态文件、模板文件的包含和流程控制语句)485
17.2.5 自定义函数487
17.2.6 配置文件487
17.3 Smarty程序设计——动态文件操作489
17.3.1 SMARTY_PATH常量489
17.3.2 Smarty程序设计变量489
17.3.3 Smarty方法489
17.3.4 Smarty缓存490
17.4 照猫画虎——基本功训练492
17.4.1 基本功训练1——封装Smarty模板的配置方法492
17.4.2 基本功训练2——Smarty模板中的页面设计493
17.4.3 基本功训练3——if语句判断当前用户权限494
17.4.4 基本功训练4——Smarty模板中日期、时间的格式化输出496
17.4.5 基本功训练5——register_object方法注册模板对象496
17.5 情景应用——拓展与实践498
17.5.1 情景应用1——Smarty模板中的truncate方法截取字符串498
17.5.2 情景应用2——Smarty模板制作后台管理系统主页499
17.5.3 情景应用3——html_option函数向下拉列表中添加列表项501
17.5.4 情景应用4——Smarty模板中应用正则表达式503
17.5.5 情景应用5——开启网站登录页面的缓存505
17.6 自我测试506
17.7 行动指南507
17.8 成功可以复制——征途巨人
史玉柱508
第18堂课 Zend Framework框架511
视频讲解:145分钟
18.1 Zend Framework的MVC介绍512
18.1.1 Zend Framework概述512
18.1.2 Zend Framework常用组件512
18.1.3 MVC原理512
18.2 Zend Framework的MVC环境搭建513
18.2.1 环境配置513
18.2.2 框架结构514
18.2.3 创建流程515
18.2.4 Zend Framework的编码标准518
18.3 Zend_Auth身份认证519
18.3.1 Zend_Auth适配器519
18.3.2 身份持久认证520
18.3.3 数据库认证523
18.4 Zend_Db数据库操作524
18.4.1 Zend_Db_Adapter数据库操作524
18.4.2 Zend_Db_Table数据库操作524
18.4.3 数据表类526
18.5 Zend_File文件控制530
18.5.1 使用Zend_File_Transfer_Adapter_Http实现POST方式文件上传530
18.5.2 对上传文件的合理性验证531
18.5.3 为上传增加过滤规则532
18.6 Zend_Layout网站布局533
18.6.1 Zend_Layout概述533
18.6.2 Zend_Layout使用方法533
18.6.3 Zend_Layout应用实例534
18.7 Zend_Paginator分页536
18.7.1 Zend_Paginator简介536
18.7.2 Zend_Paginator分页方法536
18.7.3 Zend_Paginator分页应用537
18.8 照猫画虎——基本功训练540
18.8.1 基本功训练1——通过Zend_Acl控制角色和资源的权限540
18.8.2 基本功训练2——比较缓存日期与本地日期542
18.8.3 基本功训练3——应用Zend_Config配置站点初始参数544
18.8.4 基本功训练4——应用Zend_Form制作用户注册表单547
18.8.5 基本功训练5——应用Zend_Mail发送邮件549
18.9 情景应用——拓展与实践551
18.9.1 情景应用1——应用Zend Framework进行用户身份验证551
18.9.2 情景应用2——应用Zend Framework实现查询结果关键字描红553
18.9.3 情景应用3——应用Zend Framework设计新闻发布系统首页556
18.9.4 情景应用4——应用Zend_Paginaator实现数据分页显示560
18.9.5 情景应用5——应用Zend_Mail接收邮件561
18.10 自我测试564
18.11 行动指南564
18.12 成功可以复制——创造互联网搜索
时代拉里·佩奇和谢尔盖·布林565
第19堂课 PHP的安全与防护567
视频讲解:40分钟
19.1 PHP加密函数568
19.1.1 使用crypt()函数进行加密568
19.1.2 使用md5()函数进行加密569
19.1.3 使用sha1()函数进行加密570
19.2 PHP加密扩展库570
19.2.1 Mcrypt扩展库570
19.2.2 Mhash扩展库571
19.3 PHP漏洞和防护措施572
19.3.1 本地文件包含漏洞572
19.3.2 远程文件包含漏洞573
19.3.3 文件上传漏洞573
19.3.4 提交表单漏洞574
19.3.5 SQL注入漏洞575
19.4 照猫画虎——基本功训练575
19.4.1 基本功训练1——通过crypt()函数进行加密575
19.4.2 基本功训练2——通过md5()函数进行加密576
19.4.3 基本功训练3——通过sha1()函数进行加密576
19.4.4 基本功训练4——通过mcrypt()函数进行加密、解密操作577
19.4.5 基本功训练5——通过mhash()扩展库进行加密、解密578
19.5 情景应用——拓展与实践578
19.5.1 情景应用1——通过crypt()函数对用户注册密码进行加密578
19.5.2 情景应用2——通过md5()函数对用户注册密码进行加密579
19.5.3 情景应用3——通过自定义函数实现加密操作580
19.5.4 情景应用4——隐藏PHP文件扩展名580
19.5.5 情景应用5——禁止用户输入敏感字符581
19.6 自我测试583
19.7 行动指南584
19.8 成功可以复制——初中站长的创业故事李兴平585
第20堂课 PHP的字符编码587
视频讲解:79分钟
20.1 字符集和编码588
20.1.1 ISO 8859?字符集588
20.1.2 GB2312与GBK字符集588
20.1.3 Unicode字符集589
20.1.4 UTF-8编码589
20.2 PHP网页的字符编码590
20.2.1 设置编码格式590
20.2.2 转换编码格式591
20.2.3 检测字符串的编码592
20.3 PHP开发中的乱码问题593
20.3.1 解决页面中的乱码问题593
20.3.2 数据库中的字符集编码问题594
20.3.3 避免截取中文字符串时出现乱码595
20.4 照猫画虎——基本功训练596
20.4.1 基本功训练1——Dreamweaver中编码格式的选择596
20.4.2 基本功训练2——创建gb2312编码格式的网页597
20.4.3 基本功训练3——通过iconv()函数实现编码格式的转换598
20.4.4 基本功训练4——通过header()函数设置PHP脚本文件的编码格式599
20.4.5 基本功训练5——设置MySQL数据库中数据的编码格式599
20.5 情景应用——拓展与实践601
20.5.1 情景应用1——采用utf-8编码设计论坛网页601
20.5.2 情景应用2——以utf8编码输出论坛中数据602
20.5.3 情景应用3——论坛中控制帖子标题输出的长度603
20.5.4 情景应用4——完成论坛中帖子的发布605
20.5.5 情景应用5——对输出的数据进行编码格式转换606
20.6 自我测试607
20.7 行动指南608
20.8 成功可以复制——暴雪公司的
领航者迈克·莫汉609
第21堂课 程序调试与错误处理611
视频讲解:112分钟
21.1 基本调试策略612
21.2 常见错误分析612
21.2.1 语法错误613
21.2.2 定义错误615
21.2.3 逻辑错误616
21.2.4 运行错误616
21.2.5 环境错误618
21.3 php.ini中的错误处理机制619
21.3.1 控制错误显示以及显示方式619
21.3.2 控制错误的级别619
21.4 程序调试方法620
21.4.1 应用DIE语句调试620
21.4.2 应用mysql_error()语句输出错误信息621
21.5 错误处理技巧622
21.5.1 隐藏错误622
21.5.2 自定义错误页面622
21.6 照猫画虎——基本功训练623
21.6.1 基本功训练1——解决程序的语法错误623
21.6.2 基本功训练2——计算商品的折扣价格624
21.6.3 基本功训练3——连接不存在的数据库624
21.6.4 基本功训练4——运行缺少第三方组件的程序625
21.6.5 基本功训练5——通过readfile ()函数访问远程文件626
21.7 情景应用——拓展与实践626
21.7.1 情景应用1——分析、解决PHP与MySQL连接错误626
21.7.2 情景应用2——解决数据库乱码问题628
21.7.3 情景应用3——封装异常处理类629
21.7.4 情景应用4——使用错误处理器记录日志630
21.7.5 情景应用5——通过phpMyAdmin调试SQL语句中的错误631
21.8 自我测试632
21.9 行动指南632
21.10 成功可以复制——Java技术
之父James Gosling633
第4部分 实战篇
第22堂课 应用Smarty模板开发电子商务
网站637
视频讲解:65分钟
22.1 开发背景638
22.2 需求分析638
22.3 系统分析638
22.3.1 系统目标638
22.3.2 系统功能结构639
22.3.3 开发环境639
22.3.4 文件夹组织结构640
22.4 数据库设计641
22.4.1 数据库分析641
22.4.2 创建数据库和数据表642
22.5 公共文件设计643
22.5.1 数据库连接、管理和分页类文件643
22.5.2 Smarty模板配置类文件646
22.5.3 执行类的实例化文件646
22.6 前台首页设计646
22.6.1 前台首页概述646
22.6.2 前台首页技术分析647
22.6.3 前台首页实现过程647
22.7 登录模块设计649
22.7.1 登录模块概述649
22.7.2 登录模块技术分析650
22.7.3 用户注册651
22.7.4 用户登录653
22.7.5 找回密码655
22.8 会员信息模块设计660
22.8.1 会员信息模块概述660
22.8.2 会员信息模块技术分析660
22.8.3 会员中心661
22.8.4 安全退出664
22.9 商品展示模块设计665
22.9.1 商品展示模块概述665
22.9.2 商品展示模块技术分析665
22.9.3 商品展示模块的实现过程666
22.10 购物车模块设计669
22.10.1 购物车模块概述669
22.10.2 购物车模块技术分析669
22.10.3 购物车展示671
22.10.4 更改商品数量673
22.10.5 删除商品674
22.10.6 保存购物车676
22.11 收银台模块设计678
22.11.1 收银台模块概述678
22.11.2 收银台模块技术分析678
22.11.3 显示订单678
22.11.4 填写订单679
22.11.5 处理订单679
22.12 后台首页设计681
22.12.1 后台首页概述681
22.12.2 后台首页技术分析681
22.12.3 后台首页实现过程683
22.13 开发技巧与难点分析684
22.13.1 解决Ajax的乱码问题684
22.13.2 使用JS脚本获取、输出标签内容685
22.13.3 禁用页面缓存685
22.13.4 在新窗口中使用session685
22.13.5 判断上传文件格式685
22.13.6 设置服务器的时间686
22.14 开发总结686
第23堂课 Zend Framework框架开发明日
搜索引擎687
视频讲解:80分钟
23.1 明日搜索引擎概述688
23.2 开发背景688
23.3 需求分析688
23.4 系统分析688
23.4.1 功能结构689
23.4.2 开发环境689
23.5 数据库设计689
23.5.1 数据库分析690
23.5.2 数据库概念设计690
23.5.3 创建数据库及数据表691
23.6 技术攻关692
23.6.1 类似Google搜索引擎的搜索条692
23.6.2 使用空格分隔多关键字696
23.6.3 关键字描红699
23.6.4 制作在线编辑器701
23.7 MVC框架结构搭建703
23.8 首页设计704
23.8.1 首页概述704
23.8.2 首页技术分析705
23.8.3 首页的实现过程705
23.9 用户模块设计708
23.9.1 用户模块概述708
23.9.2 用户模块技术分析708
23.9.3 用户注册的实现过程710
23.9.4 用户登录的实现过程712
23.10 发表问题模块设计714
23.10.1 发表问题模块概述714
23.10.2 发表问题模块技术分析715
23.10.3 发表问题模块实现过程716
23.11 回复问题模块设计718
23.11.1 回复问题模块概述718
23.11.2 回复问题模块技术分析719
23.11.3 回复问题模块实现过程719
23.12 程序调试与错误处理720
23.12.1 项目开发过程中常见错误及解决方法721
23.12.2 自定义错误页面721
23.13 开发总结722
特别提醒:
亲爱的读者朋友,由于近期纸张价格和印制成本大幅上涨,为不增加读者朋友的负担,又不减少书的内
容,本书以下章节内容不得不放在配书光盘中,由此给您带来了不便,在此深表歉意。
第24堂课 学校图书馆管理系统723
视频讲解:150分钟
(本章内容在配书光盘中)
24.1 开发背景724
24.2 需求分析724
24.3 系统设计724
24.3.1 系统目标724
24.3.2 系统功能结构725
24.3.3 系统流程图725
24.3.4 开发环境725
24.3.5 文件夹组织结构726
24.4 数据库设计727
24.4.1 数据库分析727
24.4.2 数据库概念设计727
24.4.3 创建数据库及数据表728
24.5 首页设计729
24.5.1 首页概述729
24.5.2 首页技术分析730
24.5.3 首页的实现过程730
24.6 管理员模块设计731
24.6.1 管理员模块概述731
24.6.2 管理员模块技术分析732
24.6.3 系统登录的实现过程732
24.6.4 查看管理员的实现过程734
24.6.5 添加管理员的实现过程735
24.6.6 设置管理员权限的实现过程736
24.6.7 删除管理员的实现过程738
24.7 图书档案管理模块设计738
24.7.1 图书档案管理模块概述738
24.7.2 图书档案管理模块技术分析739
24.7.3 查看图书信息列表的实现过程739
24.7.4 添加图书信息的实现过程740
24.7.5 修改图书信息的实现过程742
24.7.6 删除图书信息的实现过程743
24.8 图书借还模块设计743
24.8.1 图书借还模块概述743
24.8.2 图书借还模块技术分析744
24.8.3 图书借阅的实现过程744
24.8.4 图书续借的实现过程747
24.8.5 图书归还的实现过程748
24.8.6 图书借阅查询的实现过程749
24.9 开发技巧与难点分析752
24.9.1 如何自动计算图书归还日期752
24.9.2 如何对图书借阅信息进行统计排行752
24.10 开发总结753
附录A PHP编码规则755
(本章内容在配书光盘中)
A.1 PHP File文件格式755
A.1.1 常规755
A.1.2 缩进755
A.1.3 行的最大长度755
A.1.4 行结束标志755
A.1.5 引号755
A.1.6 运算符、小括号、空格和关键词756
A.2 命名约定757
A.2.1 类757
A.2.2 接口757
A.2.3 文件名757
A.2.4 函数和方法758
A.2.5 变量758
A.2.6 常量759
A.2.7 数据库表和字段759
A.3 编码风格759
A.3.1 PHP代码划分(Demarcation)759
A.3.2 字符串759
A.3.3 数组760
A.3.4 类760
A.3.5 函数和方法761
A.3.6 控制语句762
A.3.7 数据库763
A.3.8 注释文档764