【书名】 PHP 开发入行真功夫
【作者】 三扬科技编著
【ISBN】 978-7-121-08845-2
【出版社】电子工业出版社
【出版日期】 2009 年 7 月
【宣传语】
史上最牛编程入门图书震撼登场,30多小时的高品质视频讲座,提供多种技术的知名企业面试题库及面试指南等!!!
入门到入行 全凭真功夫
新方法荡平学习障碍,一线工程师亲传实战技能与思想
为开发从业量身打造,视频/题库/求职三合一助力入行
1、高达30多小时的高品质视频讲座,目前视频讲解时间最长的图书产品。
2、史无前例地提供多种技术的知名企业面试题库,以及由大量实用资料组成的就业指南。
3、本套图书内容体例上也精求创新,以全新的学习路线图引导读者由入门层次迅速提升至行业水准
【内容简介】
这是一本完全适合PHP初级入门并提高的参考资料。全书由浅入深、循序渐进,系统全面地介绍了PHP 5的基础知识点,以及其在Web应用程序开发方面的相关技术。通过每章细致的理论讲解及大量的配套实例,使读者在学习理论的同时提高动手能力。每章还提供了实训测试部分,该部分内容都来源于实际项目的部分环节,使读者能够检测自己的学习成果,查缺补漏,最终做到学以致用。
本书共分17章,从PHP 5最基本的编程知识、PHP基本语法、字符串、函数、数组、文件操作等内容开始;然后对MySQL数据库的操作及应用进行了详细的讲解;接着过渡到PHP在网络方面的应用;最后通过一个完整的、最为流行的案例——电子商城系统,作为本书学习内容的总结和演练。
随书附赠光盘,收录超长时间的讲解视频,提供实例中心、项目中心、源码中心三大资料库,提供丰富的程序实例、效果演示、完整的开发项目,以及图书、光盘涉及程序的完整源代码。
【目录】
第1章 PHP概述 1
视频时长:56分钟
如果想要寻找一种在网络世界中已经充分地证明了自己实力的脚本语言,那么PHP语言将会成为一种绝佳的选择,PHP语言是非常基础的,容易到任何人都可以很轻松地使用它。
——Scott
1.1 案例场景 2
1.1.1 创建问候程序 2
1.1.2 我们现在能做的…… 2
1.2 初识PHP 3
1.2.1 PHP简介 3
1.2.2 PHP的特性 3
1.3 搭建PHP运行环境 4
1.3.1 Apache简介 4
1.3.2 安装Apache与PHP 5
1.3.3 Apache的配置信息 9
1.3.4 PHP的配置信息 10
1.4 PHP集成开发环境 12
1.4.1 AppServ 12
1.4.2 EasyPHP 13
1.5 PHP常用开发工具 15
1.5.1 Zend Studio 15
1.5.2 Komodo 16
1.5.3 Dreamweaver 16
1.5.4 其他常用开发工具 17
1.6 回到案例场景 17
1.6.1 基本思路 18
1.6.2 代码演练 18
1.7 本章小结与习题 18
1.7.1 重点回顾 18
1.7.2 课后练习 19
1.7.3 实训 19
第2章 基本语法 21
视频时长:70分钟
多年来,PHP在其原有基础之上还在继续发展,不断提供更丰富的功能和更大的伸缩性。由于PHP的宗旨是以开发群体为本,所以每一个新版本中都会增加全新的功能,从而支持开发功能更强大的代码,并对原本就已经很丰富的内置方法库不断升级。
——Lee Babin(加)
2.1 案例场景 22
2.1.1 判断闰年程序 22
2.1.2 我们现在能做的…… 22
2.2 PHP语法入门 23
2.2.1 PHP的语言概貌 23
2.2.2 为我们的程序添加注释 25
2.3 PHP的变量和常量 26
2.3.1 变量的定义与赋值 26
2.3.2 变量的作用域 29
2.3.3 变量的生命周期 30
2.3.4 可变变量的应用 31
2.3.5 常量的定义 32
2.3.6 默认的系统变量及系统常量 33
2.4 PHP的数据类型 34
2.4.1 基本数据类型 34
2.4.2 复合数据类型 35
2.4.3 特殊数据类型 37
2.5 数据类型之间的转换 38
2.5.1 自动类型转换 39
2.5.2 强制类型转换 40
2.6 控制运算——表达式和运算符 47
2.6.1 常用运算符 47
2.6.2 特殊运算符 53
2.6.3 运算符的优先级 55
2.7 流程控制语句 56
2.7.1 条件语句 57
2.7.2 循环语句 60
2.7.3 跳转语句 63
2.8 包含语句 65
2.8.1 include()与include_once() 65
2.8.2 require()与require_once() 66
2.9 回到案例场景 67
2.9.1 基本思路 68
2.9.2 代码演练 68
2.10 本章小结与习题 69
2.10.1 重点回顾 69
2.10.2 课后练习 69
2.10.3 实训 70
第3章 字符串与正则表达式 71
视频时长:187分钟
在使用PHP等编程语言时,字符串往往是一个很重要的主题。字符串处理常常作为许多编程难题的解决方案,能否动态地利用字符串功能,这正是简单应用与功能完备的Web解决方案之间的区别。能够灵活地使用字符串功能是一个能让人刮目相看的高水平技巧。
——Lee Babin(加)
3.1 案例场景 72
3.1.1 文档内容格式化程序 72
3.1.2 我们现在能做的………… 72
3.2 定义字符串 73
3.2.1 使用单引号 73
3.2.2 使用双引号 74
3.2.3 使用定界符 75
3.3 字符串的显示与格式化 76
3.3.1 字符串的显示 76
3.3.2 字符串的格式化 76
3.4 字符串常用操作 79
3.5 PHP支持的正则表达式 92
3.5.1 正则表达式简介 92
3.5.2 POSIX风格的正则表达式 92
3.5.3 Perl风格的正则表达式 97
3.6 回到案例场景 101
3.6.1 基本思路 101
3.6.2 代码演练 102
3.7 本章小结与习题 104
3.7.1 重点回顾 104
3.7.2 课后习题 104
3.7.3 实训 105
第4章 函数 107
视频时长:99分钟
一般来讲,冗余的代码都是不好的,一而再,再而三地重写代码不仅浪费时间,从布局和结构角度看也显得粗制滥造。与所有优秀语言一样,PHP采用了很多方法来缓解冗余代码问题,其中最常用而且最容易实现的方法就是使用函数。
——Frank M.Kromann(美)
4.1 案例场景 108
4.1.1 客户资料搜索程序 108
4.1.2 我们现在能做的…… 108
4.2 定义函数 111
4.2.1 函数的构成 111
4.2.2 函数的命名规范 112
4.2.3 调用函数 112
4.2.4 自定义函数 113
4.3 使用函数的参数 114
4.3.1 声明函数参数的方式 114
4.3.2 使用参数默认值 115
4.3.3 参数的传递方式 116
4.4 函数作用域 117
4.5 PHP内置函数 119
4.5.1 日期/时间函数库 119
4.5.2 数学函数库 123
4.5.3 变量函数库 125
4.6 回到案例场景 128
4.6.1 基本思路 128
4.6.2 代码演练 129
4.7 本章小结与习题 131
4.7.1 重点回顾 131
4.7.2 课后练习 131
4.7.3 实训 132
第5章 数组 133
视频时长:124分钟
数据集的处理如此普遍,以至于所有主流编程语言都支持一种常见的方式,用以在代码中管理这些数据组。这种方式一般都以复合数据类型数组为核心,它提供了一种理想的方法来存储、操作、排序和获取数据集。
——W.Jason Gilmore(美)
5.1 案例场景 134
5.1.1 图书销量查询程序 134
5.1.2 我们现在能做的…… 134
5.2 数组分类 136
5.2.1 一维数组与多维数组 136
5.2.2 索引数组与关联数组 138
5.3 数组的基本操作 139
5.3.1 创建数组 140
5.3.2 遍历数组元素 140
5.3.3 数组元素的添加、删除与更新 142
5.4 常用数组函数 144
5.4.1 数组的排序 144
5.4.2 数组判断函数 148
5.4.3 其他常用数组函数 150
5.5 回到案例场景 155
5.5.1 基本思路 156
5.5.2 代码演练 156
5.6 本章小结与习题 157
5.6.1 重点回顾 157
5.6.2 课后习题 158
5.6.3 实训 158
第6章 文件操作 159
视频时长:94分钟
幸运的是,PHP很好地满足了两个条件,它为程序员提供了大量的根据,不仅可以处理文件系统的输入与输出,还能在shell级执行程序。
——W.Jason.Gilmore(美)
6.1 案例场景 160
6.1.1 网络文件柜 160
6.1.2 我们现在能做的…… 160
6.2 文件操作 162
6.2.1 打开文件操作 162
6.2.2 读取文件操作 163
6.2.3 写入文件操作 166
6.2.4 其他常用文件操作 168
6.3 目录操作 169
6.4 使用文件权限 172
6.5 文件的上传下载 173
6.5.1 上传文件的类型 173
6.5.2 文件上传的实现方式 173
6.5.3 上传文件内容的过滤 176
6.5.4 实现文件下载 177
6.6 回到案例场景 178
6.6.1 基本思路 178
6.6.2 代码演练 180
6.7 本章小结与习题 187
6.7.1 重点回顾 187
6.7.2 课后练习 188
6.7.3 实训 188
第7章 PHP 5中的面向对象 189
视频时长:155分钟
一颗濒于陨落的恒星,一个正在识字的孩子,一群对病毒发起***的白细胞:这些只不过是物质世界中少数涉及巨大复杂性的对象。软件也可能会牵扯到很复杂的元素,但这里所看到的复杂性却是根本不同的类型。
——Grady Booch,IBM Fellow,UML创始人之一
7.1 案例场景 190
7.1.1 模拟通话程序 190
7.1.2 我们现在能做的…… 190
7.2 类和对象 192
7.2.1 定义类 192
7.2.2 实例化对象 193
7.2.3 成员变量与成员方法 193
7.2.4 使用$this 195
7.2.5 构造方法 196
7.2.6 析构方法 197
7.2.7 静态变量和静态方法 198
7.2.8 类常量 200
7.3 继承 201
7.3.1 继承的实现 201
7.3.2 覆盖父类方法 202
7.3.3 继承中构造方法的调用 203
7.4 抽象类与接口 204
7.4.1 定义抽象类 204
7.4.2 抽象类的继承 204
7.4.3 定义接口 205
7.4.4 实现接口 206
7.4.5 抽象类与接口的区别 206
7.5 多态 207
7.5.1 通过继承实现多态 207
7.5.2 通过接口实现多态 208
7.6 PHP中的反射的实现 209
7.7 回到案例场景 212
7.7.1 基本思路 212
7.7.2 代码演练 213
7.8 本章小结与习题 214
7.8.1 重点回顾 215
7.8.2 课后练习 215
7.8.3 实训 215
第8章 Session和Cookie 217
视频时长:63分钟
在过去几年里,标准Web开发的实践已经有了长足的发展。其中最突出的可能就是跟踪特定用户首选项和数据的实践,这个曾经让人惊叹不已的技巧原来只是最有野心的开发人员的最爱,但如今早已从新鲜事物变成了必需品。目前,大多数企业级应用程序都在使用HTTP会话,不使用HTTP会话的只是极少数情况。
——W.Jason Gilmore(美)
8.1 案例场景 218
8.1.1 购物车的实现 218
8.1.2 我们现在能做的…… 218
8.2 使用Session 219
8.2.1 Session简介 219
8.2.2 Session的创建与销毁 219
8.2.3 Session的配置 220
8.2.4 Session中的存取对象与
应用数组 224
8.2.5 Session 的共享与安全 225
8.2.6 提高Session的效率 228
8.3 使用Cookie 229
8.3.1 Cookie简介 229
8.3.2 Cookie的工作原理 230
8.3.3 创建与删除Cookie 231
8.3.4 解决Cookie中常见的问题 232
8.4 回到案例场景 233
8.4.1 基本思路 233
8.4.2 代码演练 234
8.5 本章小结与习题 235
8.5.1 重点回顾 236
8.5.2 课后练习 236
8.5.3 实训 236
第9章 错误及异常处理 237
视频时长:56分钟
在完美的世界里,程序会像充分润滑的机器一样运转,没有内部错误,也没有用户造成的错误来中断执行流程。但是,程序与真实世界一样,除了美梦什么都会有,随时都可能出现不可预见的事件打断正常的事件链。在程序语言中,这些意料之外的事件称为异常。
——W.Jason Gilmore(美)
9.1 案例场景 238
9.1.1 网站流量预警程序 238
9.1.2 我们现在能做的…… 238
9.2 常见错误类型 239
9.2.1 编程错误 240
9.2.2 未定义符号错误 241
9.2.3 通用性错误 242
9.2.4 运行错误 243
9.3 错误处理机制 243
9.3.1 错误级别 243
9.3.2 错误报告 244
9.3.3 手动处理错误 245
9.3.4 自定义错误页面 245
9.4 异常处理 246
9.4.1 使用try和catch 246
9.4.2 基本异常类 248
9.4.3 扩展异常类 248
9.4.4 捕获并处理多个异常 249
9.5 回到案例场景 251
9.5.1 基本思路 251
9.5.2 代码演练 251
9.6 本章小结与习题 253
9.6.1 重点回顾 253
9.6.2 课后练习 254
9.6.3 实训 254
*选修课:MySQL数据库处理(参见光盘文档,
对应页码为光盘文档页码) 1
视频时长:85分钟
MySQL为Internet网站、搜索引擎、数据仓库、任务关键的软件应用和系统提供动力。简而言之,它无处不在,它的应用将会变得更广泛。
——Vikram Vaswani(美)
一、案例场景 2
1.公司员工信息存储 2
2.我们现在能做的…… 2
二、关系型数据库和关系型数据库系统 3
1.关系型数据库的概念 3
2.关系型数据库系统的体系结构 4
三、MySQL 5概述 4
四、准备工作——安装MySQL 5 5
1.MySQL 5的下载及安装 5
2.MySQL 5的配置及测试 7
五、数据库和表操作 9
1.数据库的创建及删除 9
2.表的创建及删除 10
3.复制表 12
4.修改表 13
六、数据操作 14
1.插入数据 14
2.查询数据 16
3.更新数据 18
4.删除数据 18
七、高级SQL应用 19
1.连接 19
2.子查询 21
3.事务处理 22
八、管理MySQL 23
1.数据备份 24
2.用户权限与访问控制 24
3.性能优化 26
4.服务器管理 27
九、回到案例场景 28
1.基本思路 28
2.代码演练 29
十、本章小结与习题 29
1.重点回顾 29
2.课后练习 30
3.实训 30
第10章 访问MySQL数据库 255
视频时长:80分钟
Web开发的一个重要方面就是能够收集、存储和获取多种不同形式的数据。Internet上已经提供了许多数据库解决方案,包括Microsoft Access、SQL Server、Oracle等。不过,在所有这些解决方案中,有一种数据库软件经过反复证明,被认为是一种健壮而廉价的解决方案,这就是MySQL。
——Nathan A.Good(美)
10.1 案例场景 256
10.1.1 用户登录程序 256
10.1.2 我们现在能做的…… 256
10.2 PHP 5的mysql扩展 262
10.2.1 启用mysql扩展 262
10.2.2 使用phpMyAdmin
导入数据 262
10.3 PHP 5中MySQL的应用 263
10.3.1 连接与断开服务器 263
10.3.2 选择数据库 264
10.3.3 获取查询结果 265
10.3.4 分页处理 266
10.3.5 数据的插入、修改及
删除操作 267
10.4 在PHP程序中获得MySQL
数据库信息 269
10.4.1 获得所有的数据库 269
10.4.2 获得数据库内的表 269
10.4.3 获取字段的相关信息 270
10.4.4 获取错误信息 273
10.5 PHP 5的其他数据库相关函数 274
10.6 PHP 5的mysqli扩展 277
10.6.1 mysqli简介 278
10.6.2 连接与断开服务器 278
10.6.3 使用mysqli存取数据 280
10.6.4 预准备语句 281
10.6.5 多个查询 283
10.7 回到案例场景 284
10.7.1 基本思路 284
10.7.2 代码演练 285
10.8 本章小结与习题 291
10.8.1 重点回顾 291
10.8.2 课后练习 291
10.8.3 实训 291
第11章 数据库抽象层 293
视频时长:52分钟
可用的软件解决方案如此众多,这是好事,也是坏事。虽然这种丰富性对于终端用户来说是好消息,有助于他们寻找最能满足特定需求的产品,但对于开发人员和系统管理员而言,一直以来则如同噩梦,因为这要求两个或更多不同产品之间要进行透明的互操作。
——W.Jason Gilmore(美)
11.1 案例场景 294
11.1.1 商品后台管理程序 294
11.1.2 我们现在能做的…… 294
11.2 数据库抽象层简介 302
11.3 PDO 303
11.3.1 安装PDO 303
11.3.2 连接数据库 304
11.3.3 使用PDO存取数据 305
11.3.4 PDO的错误处理 309
11.3.5 PDO的事务 310
11.4 ADODB 311
11.4.1 ADODB的下载及安装 311
11.4.2 连接数据库 311
11.4.3 使用ADODB存取数据 312
11.4.4 ADODB的事务 316
11.5 回到案例场景 316
11.5.1 基本思路 316
11.5.2 代码演练 317
11.6 本章小结与习题 321
11.6.1 重点回顾 321
11.6.2 课后练习 322
11.6.3 实训 322
*选修课:PHP与Ajax(参见光盘文档,
对应页码为光盘文档页码) 1
视频时长:35分钟
在Ajax应用中,网络通信流量主要集中在加载的前期,无论如何,用户登录后是需要一次性地将一个大而复杂的客户端交付给浏览器的。但是在此之后,与服务器的通信则会有效得多。整体而言,Ajax应用的带宽消耗要比传统的Web应用低一些。
——Dave Crane,Eric Pascarello,Darren James
一、案例场景 2
1.用户登录程序 2
2.我们现在能做的…… 2
二、Ajax简介 3
三、Ajax基础 4
1.Ajax的工作原理 4
2.XMLHttpRequest 5
3.DOM 5
4.体验Ajax 5
四、Xajax 8
1.安装Xajax 8
2.Xajax的工作原理 9
3.在PHP程序中应用Xajax 9
五、回到案例场景 11
1.基本思路 11
2.代码演练 12
六、本章小结与习题 15
1.重点回顾 15
2.课后习题 16
3.实训 16
第12章 PHP网络应用 323
视频时长:83分钟
PHP提供了多种方法与Internet服务通信,其中最基本的方法是套接字(socket)通信,采用这种方法时,所有协议特性都必须在PHP脚本中实现。
——Lee Babin(加),Nathan A.Good(美),
Frank M.Kromann(美),Jon Stephens(澳)
12.1 案例场景 324
12.1.1 文件管理 324
12.1.2 我们现在能做的…… 324
12.2 DNS与服务 327
12.2.1 DNS简介 327
12.2.2 获取服务 327
12.3 实现“C/S”通信 328
12.3.1 Socket工作原理 329
12.3.2 Socket功能演示 329
12.3.3 Socket应用详解 330
12.4 实现FTP操作 331
12.4.1 登录FTP服务器 332
12.4.2 获取服务器文件列表 333
12.4.3 实现对服务器文件的操作 333
12.5 电子邮件 335
12.5.1 电子邮件的配置 335
12.5.2 mail()函数 335
12.5.3 电子邮件的发送方式 336
12.6 回到案例场景 338
12.6.1 基本思路 338
12.6.2 代码演练 339
12.7 本章小结与习题 343
12.7.1 重点回顾 344
12.7.2 课后习题 344
12.7.3 实训 344
第13章 Smarty模板 345
视频时长:70分钟
不管应用程序的平台是什么,要想设计一种方法来管理统一的表现界面,与此同时还能处理那些与应用程序特性集有关的代码(这些代码通常相当复杂),这一直是一项难题。虽然还没有尽善尽美的解决方案,但已经有很多解决方案可以将网站的表现与逻辑几乎完全分离。这些解决方案称为模板引擎,它们正在逐步消除由于缺乏层次分离而带来的难题。
——W.Jason Gilmore(美)
13.1 案例场景 346
13.1.1 新闻信息显示 346
13.1.2 我们现在能做的…… 346
13.2 认识模板引擎 350
13.3 使用Smarty前的准备工作 350
13.3.1 认识Smarty 350
13.3.2 下载和安装Smarty 351
13.3.3 配置Smarty 351
13.4 Smarty入门 352
13.4.1 开始使用Smarty模板 352
13.4.2 Smarty模板的工作原理 353
13.5 Smarty基础 354
13.5.1 注释 354
13.5.2 普通变量及保留变量 354
13.5.3 Smarty的条件控制语句 355
13.5.4 Smarty的循环控制语句 356
13.5.5 包含文件 359
13.5.6 模板修饰符 360
13.6 Smarty深入 364
13.6.1 Smarty缓存 364
13.6.2 Smarty配置文件 365
13.6.3 Smarty调试 366
13.7 回到案例场景 367
13.7.1 基本思路 367
13.7.2 代码演练 368
13.8 本章小结与习题 372
13.8.1 重点回顾 372
13.8.2 课后练习 372
13.8.3 实训 372
第14章 应用Zend Studio 373
视频时长:88分钟
Zend Studio是一个既能创建PHP又能创建JavaScript应用的富互联网应用开发IDE。
——Alex Blewitt
14.1 案例场景 374
14.1.1 用户信息维护 374
14.1.2 我们现在能做的…… 374
14.2 Zend Studio的下载与安装 376
14.3 Zend Studio的用户界面 378
14.3.1 窗口布局 379
14.3.2 工具栏和各种窗口介绍 379
14.3.3 首选项配置 382
14.4 Zend Studio的快捷应用 387
14.4.1 快捷键 387
14.4.2 自动补全代码 389
14.4.3 指定代码片段 390
14.5 Zend Studio的程序调试 390
14.5.1 内部调试 391
14.5.2 远程服务器调试 393
14.5.3 监控程序执行状态 397
14.5.4 代码分析 398
14.6 回到案例场景 399
14.6.1 基本思路 399
14.6.2 代码演练 399
14.7 本章小结与习题 400
14.7.1 重点回顾 401
14.7.2 课后习题 401
14.7.3 实训 401
第15章 PHP+MySQL开发电子商城 403
视频时长:103分钟
在线销售的最大魅力在于,无论获得了1 000个订单,还是100 000个订单,成本都是相同的。要合理利用成本,必须销售一定数量的产品或服务。在开展在线商务以前,请确认产品的确适合在线销售。
——Luke Welling(美),Laure Thomson(美)
15.1 关于三扬电子商城系统 404
15.2 系统功能概述 404
15.3 系统数据库设计 406
15.3.1 数据库设计概述 406
15.3.2 数据表设计 406
15.4 工程目录结构 408
15.4.1 前台目录结构 409
15.4.2 后台目录结构 409
15.5 公共模块设计 410
15.5.1 数据库连接文件 410
15.5.2 过滤文件 410
15.5.3 生成验证码文件 411
15.6 前台功能设计 412
15.6.1 前台功能设计概述 412
15.6.2 前台首页设计 412
15.6.3 商品搜索页面 417
15.6.4 商品显示页面 419
15.6.5 用户功能模块设计 420
15.6.6 卖家模块设计 427
15.6.7 买家模块设计 433
15.6.8 退出系统设计 442
15.7 后台功能设计 442
15.7.1 后台功能设计概述 442
15.7.2 管理员登录模块设计 443
15.7.3 用户管理模块设计 446
15.7.4 商品类型模块设计 447
15.7.5 商品管理模块设计 451
15.7.6 商城公告模块设计 454
15.7.7 退出系统设计 456
15.8 本章小结 457
2、史无前例地提供多种技术的知名企业面试题库,以及由大量实用资料组成的就业指南。
3、本套图书内容体例上也精求创新,以全新的学习路线图引导读者由入门层次迅速提升至行业水准
【内容简介】
这是一本完全适合PHP初级入门并提高的参考资料。全书由浅入深、循序渐进,系统全面地介绍了PHP 5的基础知识点,以及其在Web应用程序开发方面的相关技术。通过每章细致的理论讲解及大量的配套实例,使读者在学习理论的同时提高动手能力。每章还提供了实训测试部分,该部分内容都来源于实际项目的部分环节,使读者能够检测自己的学习成果,查缺补漏,最终做到学以致用。
本书共分17章,从PHP 5最基本的编程知识、PHP基本语法、字符串、函数、数组、文件操作等内容开始;然后对MySQL数据库的操作及应用进行了详细的讲解;接着过渡到PHP在网络方面的应用;最后通过一个完整的、最为流行的案例——电子商城系统,作为本书学习内容的总结和演练。
随书附赠光盘,收录超长时间的讲解视频,提供实例中心、项目中心、源码中心三大资料库,提供丰富的程序实例、效果演示、完整的开发项目,以及图书、光盘涉及程序的完整源代码。
【目录】
第1章 PHP概述 1
视频时长:56分钟
如果想要寻找一种在网络世界中已经充分地证明了自己实力的脚本语言,那么PHP语言将会成为一种绝佳的选择,PHP语言是非常基础的,容易到任何人都可以很轻松地使用它。
——Scott
1.1 案例场景 2
1.1.1 创建问候程序 2
1.1.2 我们现在能做的…… 2
1.2 初识PHP 3
1.2.1 PHP简介 3
1.2.2 PHP的特性 3
1.3 搭建PHP运行环境 4
1.3.1 Apache简介 4
1.3.2 安装Apache与PHP 5
1.3.3 Apache的配置信息 9
1.3.4 PHP的配置信息 10
1.4 PHP集成开发环境 12
1.4.1 AppServ 12
1.4.2 EasyPHP 13
1.5 PHP常用开发工具 15
1.5.1 Zend Studio 15
1.5.2 Komodo 16
1.5.3 Dreamweaver 16
1.5.4 其他常用开发工具 17
1.6 回到案例场景 17
1.6.1 基本思路 18
1.6.2 代码演练 18
1.7 本章小结与习题 18
1.7.1 重点回顾 18
1.7.2 课后练习 19
1.7.3 实训 19
第2章 基本语法 21
视频时长:70分钟
多年来,PHP在其原有基础之上还在继续发展,不断提供更丰富的功能和更大的伸缩性。由于PHP的宗旨是以开发群体为本,所以每一个新版本中都会增加全新的功能,从而支持开发功能更强大的代码,并对原本就已经很丰富的内置方法库不断升级。
——Lee Babin(加)
2.1 案例场景 22
2.1.1 判断闰年程序 22
2.1.2 我们现在能做的…… 22
2.2 PHP语法入门 23
2.2.1 PHP的语言概貌 23
2.2.2 为我们的程序添加注释 25
2.3 PHP的变量和常量 26
2.3.1 变量的定义与赋值 26
2.3.2 变量的作用域 29
2.3.3 变量的生命周期 30
2.3.4 可变变量的应用 31
2.3.5 常量的定义 32
2.3.6 默认的系统变量及系统常量 33
2.4 PHP的数据类型 34
2.4.1 基本数据类型 34
2.4.2 复合数据类型 35
2.4.3 特殊数据类型 37
2.5 数据类型之间的转换 38
2.5.1 自动类型转换 39
2.5.2 强制类型转换 40
2.6 控制运算——表达式和运算符 47
2.6.1 常用运算符 47
2.6.2 特殊运算符 53
2.6.3 运算符的优先级 55
2.7 流程控制语句 56
2.7.1 条件语句 57
2.7.2 循环语句 60
2.7.3 跳转语句 63
2.8 包含语句 65
2.8.1 include()与include_once() 65
2.8.2 require()与require_once() 66
2.9 回到案例场景 67
2.9.1 基本思路 68
2.9.2 代码演练 68
2.10 本章小结与习题 69
2.10.1 重点回顾 69
2.10.2 课后练习 69
2.10.3 实训 70
第3章 字符串与正则表达式 71
视频时长:187分钟
在使用PHP等编程语言时,字符串往往是一个很重要的主题。字符串处理常常作为许多编程难题的解决方案,能否动态地利用字符串功能,这正是简单应用与功能完备的Web解决方案之间的区别。能够灵活地使用字符串功能是一个能让人刮目相看的高水平技巧。
——Lee Babin(加)
3.1 案例场景 72
3.1.1 文档内容格式化程序 72
3.1.2 我们现在能做的………… 72
3.2 定义字符串 73
3.2.1 使用单引号 73
3.2.2 使用双引号 74
3.2.3 使用定界符 75
3.3 字符串的显示与格式化 76
3.3.1 字符串的显示 76
3.3.2 字符串的格式化 76
3.4 字符串常用操作 79
3.5 PHP支持的正则表达式 92
3.5.1 正则表达式简介 92
3.5.2 POSIX风格的正则表达式 92
3.5.3 Perl风格的正则表达式 97
3.6 回到案例场景 101
3.6.1 基本思路 101
3.6.2 代码演练 102
3.7 本章小结与习题 104
3.7.1 重点回顾 104
3.7.2 课后习题 104
3.7.3 实训 105
第4章 函数 107
视频时长:99分钟
一般来讲,冗余的代码都是不好的,一而再,再而三地重写代码不仅浪费时间,从布局和结构角度看也显得粗制滥造。与所有优秀语言一样,PHP采用了很多方法来缓解冗余代码问题,其中最常用而且最容易实现的方法就是使用函数。
——Frank M.Kromann(美)
4.1 案例场景 108
4.1.1 客户资料搜索程序 108
4.1.2 我们现在能做的…… 108
4.2 定义函数 111
4.2.1 函数的构成 111
4.2.2 函数的命名规范 112
4.2.3 调用函数 112
4.2.4 自定义函数 113
4.3 使用函数的参数 114
4.3.1 声明函数参数的方式 114
4.3.2 使用参数默认值 115
4.3.3 参数的传递方式 116
4.4 函数作用域 117
4.5 PHP内置函数 119
4.5.1 日期/时间函数库 119
4.5.2 数学函数库 123
4.5.3 变量函数库 125
4.6 回到案例场景 128
4.6.1 基本思路 128
4.6.2 代码演练 129
4.7 本章小结与习题 131
4.7.1 重点回顾 131
4.7.2 课后练习 131
4.7.3 实训 132
第5章 数组 133
视频时长:124分钟
数据集的处理如此普遍,以至于所有主流编程语言都支持一种常见的方式,用以在代码中管理这些数据组。这种方式一般都以复合数据类型数组为核心,它提供了一种理想的方法来存储、操作、排序和获取数据集。
——W.Jason Gilmore(美)
5.1 案例场景 134
5.1.1 图书销量查询程序 134
5.1.2 我们现在能做的…… 134
5.2 数组分类 136
5.2.1 一维数组与多维数组 136
5.2.2 索引数组与关联数组 138
5.3 数组的基本操作 139
5.3.1 创建数组 140
5.3.2 遍历数组元素 140
5.3.3 数组元素的添加、删除与更新 142
5.4 常用数组函数 144
5.4.1 数组的排序 144
5.4.2 数组判断函数 148
5.4.3 其他常用数组函数 150
5.5 回到案例场景 155
5.5.1 基本思路 156
5.5.2 代码演练 156
5.6 本章小结与习题 157
5.6.1 重点回顾 157
5.6.2 课后习题 158
5.6.3 实训 158
第6章 文件操作 159
视频时长:94分钟
幸运的是,PHP很好地满足了两个条件,它为程序员提供了大量的根据,不仅可以处理文件系统的输入与输出,还能在shell级执行程序。
——W.Jason.Gilmore(美)
6.1 案例场景 160
6.1.1 网络文件柜 160
6.1.2 我们现在能做的…… 160
6.2 文件操作 162
6.2.1 打开文件操作 162
6.2.2 读取文件操作 163
6.2.3 写入文件操作 166
6.2.4 其他常用文件操作 168
6.3 目录操作 169
6.4 使用文件权限 172
6.5 文件的上传下载 173
6.5.1 上传文件的类型 173
6.5.2 文件上传的实现方式 173
6.5.3 上传文件内容的过滤 176
6.5.4 实现文件下载 177
6.6 回到案例场景 178
6.6.1 基本思路 178
6.6.2 代码演练 180
6.7 本章小结与习题 187
6.7.1 重点回顾 187
6.7.2 课后练习 188
6.7.3 实训 188
第7章 PHP 5中的面向对象 189
视频时长:155分钟
一颗濒于陨落的恒星,一个正在识字的孩子,一群对病毒发起***的白细胞:这些只不过是物质世界中少数涉及巨大复杂性的对象。软件也可能会牵扯到很复杂的元素,但这里所看到的复杂性却是根本不同的类型。
——Grady Booch,IBM Fellow,UML创始人之一
7.1 案例场景 190
7.1.1 模拟通话程序 190
7.1.2 我们现在能做的…… 190
7.2 类和对象 192
7.2.1 定义类 192
7.2.2 实例化对象 193
7.2.3 成员变量与成员方法 193
7.2.4 使用$this 195
7.2.5 构造方法 196
7.2.6 析构方法 197
7.2.7 静态变量和静态方法 198
7.2.8 类常量 200
7.3 继承 201
7.3.1 继承的实现 201
7.3.2 覆盖父类方法 202
7.3.3 继承中构造方法的调用 203
7.4 抽象类与接口 204
7.4.1 定义抽象类 204
7.4.2 抽象类的继承 204
7.4.3 定义接口 205
7.4.4 实现接口 206
7.4.5 抽象类与接口的区别 206
7.5 多态 207
7.5.1 通过继承实现多态 207
7.5.2 通过接口实现多态 208
7.6 PHP中的反射的实现 209
7.7 回到案例场景 212
7.7.1 基本思路 212
7.7.2 代码演练 213
7.8 本章小结与习题 214
7.8.1 重点回顾 215
7.8.2 课后练习 215
7.8.3 实训 215
第8章 Session和Cookie 217
视频时长:63分钟
在过去几年里,标准Web开发的实践已经有了长足的发展。其中最突出的可能就是跟踪特定用户首选项和数据的实践,这个曾经让人惊叹不已的技巧原来只是最有野心的开发人员的最爱,但如今早已从新鲜事物变成了必需品。目前,大多数企业级应用程序都在使用HTTP会话,不使用HTTP会话的只是极少数情况。
——W.Jason Gilmore(美)
8.1 案例场景 218
8.1.1 购物车的实现 218
8.1.2 我们现在能做的…… 218
8.2 使用Session 219
8.2.1 Session简介 219
8.2.2 Session的创建与销毁 219
8.2.3 Session的配置 220
8.2.4 Session中的存取对象与
应用数组 224
8.2.5 Session 的共享与安全 225
8.2.6 提高Session的效率 228
8.3 使用Cookie 229
8.3.1 Cookie简介 229
8.3.2 Cookie的工作原理 230
8.3.3 创建与删除Cookie 231
8.3.4 解决Cookie中常见的问题 232
8.4 回到案例场景 233
8.4.1 基本思路 233
8.4.2 代码演练 234
8.5 本章小结与习题 235
8.5.1 重点回顾 236
8.5.2 课后练习 236
8.5.3 实训 236
第9章 错误及异常处理 237
视频时长:56分钟
在完美的世界里,程序会像充分润滑的机器一样运转,没有内部错误,也没有用户造成的错误来中断执行流程。但是,程序与真实世界一样,除了美梦什么都会有,随时都可能出现不可预见的事件打断正常的事件链。在程序语言中,这些意料之外的事件称为异常。
——W.Jason Gilmore(美)
9.1 案例场景 238
9.1.1 网站流量预警程序 238
9.1.2 我们现在能做的…… 238
9.2 常见错误类型 239
9.2.1 编程错误 240
9.2.2 未定义符号错误 241
9.2.3 通用性错误 242
9.2.4 运行错误 243
9.3 错误处理机制 243
9.3.1 错误级别 243
9.3.2 错误报告 244
9.3.3 手动处理错误 245
9.3.4 自定义错误页面 245
9.4 异常处理 246
9.4.1 使用try和catch 246
9.4.2 基本异常类 248
9.4.3 扩展异常类 248
9.4.4 捕获并处理多个异常 249
9.5 回到案例场景 251
9.5.1 基本思路 251
9.5.2 代码演练 251
9.6 本章小结与习题 253
9.6.1 重点回顾 253
9.6.2 课后练习 254
9.6.3 实训 254
*选修课:MySQL数据库处理(参见光盘文档,
对应页码为光盘文档页码) 1
视频时长:85分钟
MySQL为Internet网站、搜索引擎、数据仓库、任务关键的软件应用和系统提供动力。简而言之,它无处不在,它的应用将会变得更广泛。
——Vikram Vaswani(美)
一、案例场景 2
1.公司员工信息存储 2
2.我们现在能做的…… 2
二、关系型数据库和关系型数据库系统 3
1.关系型数据库的概念 3
2.关系型数据库系统的体系结构 4
三、MySQL 5概述 4
四、准备工作——安装MySQL 5 5
1.MySQL 5的下载及安装 5
2.MySQL 5的配置及测试 7
五、数据库和表操作 9
1.数据库的创建及删除 9
2.表的创建及删除 10
3.复制表 12
4.修改表 13
六、数据操作 14
1.插入数据 14
2.查询数据 16
3.更新数据 18
4.删除数据 18
七、高级SQL应用 19
1.连接 19
2.子查询 21
3.事务处理 22
八、管理MySQL 23
1.数据备份 24
2.用户权限与访问控制 24
3.性能优化 26
4.服务器管理 27
九、回到案例场景 28
1.基本思路 28
2.代码演练 29
十、本章小结与习题 29
1.重点回顾 29
2.课后练习 30
3.实训 30
第10章 访问MySQL数据库 255
视频时长:80分钟
Web开发的一个重要方面就是能够收集、存储和获取多种不同形式的数据。Internet上已经提供了许多数据库解决方案,包括Microsoft Access、SQL Server、Oracle等。不过,在所有这些解决方案中,有一种数据库软件经过反复证明,被认为是一种健壮而廉价的解决方案,这就是MySQL。
——Nathan A.Good(美)
10.1 案例场景 256
10.1.1 用户登录程序 256
10.1.2 我们现在能做的…… 256
10.2 PHP 5的mysql扩展 262
10.2.1 启用mysql扩展 262
10.2.2 使用phpMyAdmin
导入数据 262
10.3 PHP 5中MySQL的应用 263
10.3.1 连接与断开服务器 263
10.3.2 选择数据库 264
10.3.3 获取查询结果 265
10.3.4 分页处理 266
10.3.5 数据的插入、修改及
删除操作 267
10.4 在PHP程序中获得MySQL
数据库信息 269
10.4.1 获得所有的数据库 269
10.4.2 获得数据库内的表 269
10.4.3 获取字段的相关信息 270
10.4.4 获取错误信息 273
10.5 PHP 5的其他数据库相关函数 274
10.6 PHP 5的mysqli扩展 277
10.6.1 mysqli简介 278
10.6.2 连接与断开服务器 278
10.6.3 使用mysqli存取数据 280
10.6.4 预准备语句 281
10.6.5 多个查询 283
10.7 回到案例场景 284
10.7.1 基本思路 284
10.7.2 代码演练 285
10.8 本章小结与习题 291
10.8.1 重点回顾 291
10.8.2 课后练习 291
10.8.3 实训 291
第11章 数据库抽象层 293
视频时长:52分钟
可用的软件解决方案如此众多,这是好事,也是坏事。虽然这种丰富性对于终端用户来说是好消息,有助于他们寻找最能满足特定需求的产品,但对于开发人员和系统管理员而言,一直以来则如同噩梦,因为这要求两个或更多不同产品之间要进行透明的互操作。
——W.Jason Gilmore(美)
11.1 案例场景 294
11.1.1 商品后台管理程序 294
11.1.2 我们现在能做的…… 294
11.2 数据库抽象层简介 302
11.3 PDO 303
11.3.1 安装PDO 303
11.3.2 连接数据库 304
11.3.3 使用PDO存取数据 305
11.3.4 PDO的错误处理 309
11.3.5 PDO的事务 310
11.4 ADODB 311
11.4.1 ADODB的下载及安装 311
11.4.2 连接数据库 311
11.4.3 使用ADODB存取数据 312
11.4.4 ADODB的事务 316
11.5 回到案例场景 316
11.5.1 基本思路 316
11.5.2 代码演练 317
11.6 本章小结与习题 321
11.6.1 重点回顾 321
11.6.2 课后练习 322
11.6.3 实训 322
*选修课:PHP与Ajax(参见光盘文档,
对应页码为光盘文档页码) 1
视频时长:35分钟
在Ajax应用中,网络通信流量主要集中在加载的前期,无论如何,用户登录后是需要一次性地将一个大而复杂的客户端交付给浏览器的。但是在此之后,与服务器的通信则会有效得多。整体而言,Ajax应用的带宽消耗要比传统的Web应用低一些。
——Dave Crane,Eric Pascarello,Darren James
一、案例场景 2
1.用户登录程序 2
2.我们现在能做的…… 2
二、Ajax简介 3
三、Ajax基础 4
1.Ajax的工作原理 4
2.XMLHttpRequest 5
3.DOM 5
4.体验Ajax 5
四、Xajax 8
1.安装Xajax 8
2.Xajax的工作原理 9
3.在PHP程序中应用Xajax 9
五、回到案例场景 11
1.基本思路 11
2.代码演练 12
六、本章小结与习题 15
1.重点回顾 15
2.课后习题 16
3.实训 16
第12章 PHP网络应用 323
视频时长:83分钟
PHP提供了多种方法与Internet服务通信,其中最基本的方法是套接字(socket)通信,采用这种方法时,所有协议特性都必须在PHP脚本中实现。
——Lee Babin(加),Nathan A.Good(美),
Frank M.Kromann(美),Jon Stephens(澳)
12.1 案例场景 324
12.1.1 文件管理 324
12.1.2 我们现在能做的…… 324
12.2 DNS与服务 327
12.2.1 DNS简介 327
12.2.2 获取服务 327
12.3 实现“C/S”通信 328
12.3.1 Socket工作原理 329
12.3.2 Socket功能演示 329
12.3.3 Socket应用详解 330
12.4 实现FTP操作 331
12.4.1 登录FTP服务器 332
12.4.2 获取服务器文件列表 333
12.4.3 实现对服务器文件的操作 333
12.5 电子邮件 335
12.5.1 电子邮件的配置 335
12.5.2 mail()函数 335
12.5.3 电子邮件的发送方式 336
12.6 回到案例场景 338
12.6.1 基本思路 338
12.6.2 代码演练 339
12.7 本章小结与习题 343
12.7.1 重点回顾 344
12.7.2 课后习题 344
12.7.3 实训 344
第13章 Smarty模板 345
视频时长:70分钟
不管应用程序的平台是什么,要想设计一种方法来管理统一的表现界面,与此同时还能处理那些与应用程序特性集有关的代码(这些代码通常相当复杂),这一直是一项难题。虽然还没有尽善尽美的解决方案,但已经有很多解决方案可以将网站的表现与逻辑几乎完全分离。这些解决方案称为模板引擎,它们正在逐步消除由于缺乏层次分离而带来的难题。
——W.Jason Gilmore(美)
13.1 案例场景 346
13.1.1 新闻信息显示 346
13.1.2 我们现在能做的…… 346
13.2 认识模板引擎 350
13.3 使用Smarty前的准备工作 350
13.3.1 认识Smarty 350
13.3.2 下载和安装Smarty 351
13.3.3 配置Smarty 351
13.4 Smarty入门 352
13.4.1 开始使用Smarty模板 352
13.4.2 Smarty模板的工作原理 353
13.5 Smarty基础 354
13.5.1 注释 354
13.5.2 普通变量及保留变量 354
13.5.3 Smarty的条件控制语句 355
13.5.4 Smarty的循环控制语句 356
13.5.5 包含文件 359
13.5.6 模板修饰符 360
13.6 Smarty深入 364
13.6.1 Smarty缓存 364
13.6.2 Smarty配置文件 365
13.6.3 Smarty调试 366
13.7 回到案例场景 367
13.7.1 基本思路 367
13.7.2 代码演练 368
13.8 本章小结与习题 372
13.8.1 重点回顾 372
13.8.2 课后练习 372
13.8.3 实训 372
第14章 应用Zend Studio 373
视频时长:88分钟
Zend Studio是一个既能创建PHP又能创建JavaScript应用的富互联网应用开发IDE。
——Alex Blewitt
14.1 案例场景 374
14.1.1 用户信息维护 374
14.1.2 我们现在能做的…… 374
14.2 Zend Studio的下载与安装 376
14.3 Zend Studio的用户界面 378
14.3.1 窗口布局 379
14.3.2 工具栏和各种窗口介绍 379
14.3.3 首选项配置 382
14.4 Zend Studio的快捷应用 387
14.4.1 快捷键 387
14.4.2 自动补全代码 389
14.4.3 指定代码片段 390
14.5 Zend Studio的程序调试 390
14.5.1 内部调试 391
14.5.2 远程服务器调试 393
14.5.3 监控程序执行状态 397
14.5.4 代码分析 398
14.6 回到案例场景 399
14.6.1 基本思路 399
14.6.2 代码演练 399
14.7 本章小结与习题 400
14.7.1 重点回顾 401
14.7.2 课后习题 401
14.7.3 实训 401
第15章 PHP+MySQL开发电子商城 403
视频时长:103分钟
在线销售的最大魅力在于,无论获得了1 000个订单,还是100 000个订单,成本都是相同的。要合理利用成本,必须销售一定数量的产品或服务。在开展在线商务以前,请确认产品的确适合在线销售。
——Luke Welling(美),Laure Thomson(美)
15.1 关于三扬电子商城系统 404
15.2 系统功能概述 404
15.3 系统数据库设计 406
15.3.1 数据库设计概述 406
15.3.2 数据表设计 406
15.4 工程目录结构 408
15.4.1 前台目录结构 409
15.4.2 后台目录结构 409
15.5 公共模块设计 410
15.5.1 数据库连接文件 410
15.5.2 过滤文件 410
15.5.3 生成验证码文件 411
15.6 前台功能设计 412
15.6.1 前台功能设计概述 412
15.6.2 前台首页设计 412
15.6.3 商品搜索页面 417
15.6.4 商品显示页面 419
15.6.5 用户功能模块设计 420
15.6.6 卖家模块设计 427
15.6.7 买家模块设计 433
15.6.8 退出系统设计 442
15.7 后台功能设计 442
15.7.1 后台功能设计概述 442
15.7.2 管理员登录模块设计 443
15.7.3 用户管理模块设计 446
15.7.4 商品类型模块设计 447
15.7.5 商品管理模块设计 451
15.7.6 商城公告模块设计 454
15.7.7 退出系统设计 456
15.8 本章小结 457
转载于:https://blog.51cto.com/haoxia/169047