图书简介:
第1章 PHP开发环境搭建 /1
1.1 PHP简介 /1
1.1.1 PHP语言发展简史 /2
1.1.2 PHP发展现状与展望 /2
1.1.3 PHP语言的优势对比 /3
1.1.4 学习提示 /3
1.2 PHP的应用范围及案例 /4
1.2.1 PHP可以做什么 /4
1.2.2 PHP擅长的领域及产
品介绍 /4
1.2.3 PHP不适合做什么 /5
1.2.4 其他案例 /5
1.3 PHP的“Hello,world”预览 /5
1.3.1 第一个PHP程序
“Hello,world” /5
1.3.2 学习PHP该准备哪
些软件 /7
1.3.3 相关知识领域介绍 /8
1.4 程序运行环境的搭建 /9
1.4.1 Apache简介 /9
1.4.2 安装Apache与PHP /9
1.4.3 使用phpinfo()确认
Apache与PHP的
安装成功 /11
1.4.4 Apache的启动与关闭 /12
1.4.5 Apache的配置文件
httpd.conf与.htaccess
简介 /12
1.4.6 PHP的配置文件
php.ini简介 /12
1.4.7 PHP常用参数的配置 /13
1.5 几种综合网络服务器系统的
安装 /13
1.5.1 XAMPP /14
1.5.2 WAMP /15
1.5.3 Appserv /16
1.6 几种开发工具简介 /17
1.6.1 Vi及Vim /17
1.6.2 Eclipse+PHPEclipse
插件 /18
1.6.3 UltraEdit /18
1.6.4 EditPlus /19
1.6.5 支持PHP的IDE
环境 /19
1.7 小结 /20
第2章 PHP基础语法 /21
2.1 语言构成与工作原理 /21
2.2 常量与变量 /22
2.2.1 常量的定义 /22
2.2.2 变量的定义 /23
2.2.3 变量的作用域 /24
2.2.4 动态变量 /26
2.3 运算符和关键字 /26
2.4 流程控制语法 /27
2.4.1 程序控制语句简介 /27
2.4.2 条件控制语句 /27
2.4.3 循环控制语句 /31
2.4.4 转移控制语句 /32
2.5 表达式 /33
2.5.1 表达式的分类 /33
2.5.2 算术操作表达式 /34
2.5.3 字符串操作表达式 /35
2.5.4 逻辑操作表达式 /36
2.5.5 比较操作表达式 /36
2.5.6 位操作表达式 /38
2.5.7 运算符的优先级 /38
2.6 特殊的全局变量 /39
2.7 文件包含 /40
2.7.1 使用require和
require_once语句
进行文件包含 /40
2.7.2 使用include与
include_once语句
进行文件包含 /42
2.8 小结 /43
第3章 PHP数据类型与操作 /43
3.1 PHP的数据类型 /43
3.1.1 标量数据类型 /43
3.1.2 合成数据类型 /48
3.1.3 特殊的数据类型 /48
3.1.4 数据类型的获得与验证 /49
3.2 数据类型间的转换 /51
3.2.1 转换成整型 /51
3.2.2 转换成浮点型 /52
3.2.3 转换成字符串型 /53
3.2.4 转换成布尔型 /54
3.2.5 转换成数组 /54
3.2.6 转换成对象 /55
3.2.7 使用函数进行数据
类型的强制转换 /55
3.3 小结 /56
第4章 函数处理与数据引用 /57
4.1 函数的定义与使用 /57
4.1.1 函数的调用 /57
4.1.2 用户自定义函数的编写 /58
4.2 PHP常用函数 /59
4.2.1 获得日期时间信息
函数getdate /59
4.2.2 获得当前时间函数
gettimeofday /60
4.2.3 日期验证函数
checkdate /61
4.2.4 格式化本地时间日期
函数date /61
4.2.5 获得本地化时间戳
函数mktime /63
4.2.6 输出控制函数flush /64
4.2.7 变量检测函数isset与
变量释放函数unset /65
4.2.8 随机函数rand与srand /65
4.3 关于引用的解释 /66
4.3.1 对变量的引用 /66
4.3.2 对函数的引用 /67
4.3.3 引用的释放 /67
4.4 小结 /68
第5章 PHP中类的应用 /69
5.1 PHP中面向对象程序设计的
应用 /69
5.1.1 类简介 /70
5.1.2 类的信息封装 /70
5.1.3 静态类 /70
5.2 创建一个简单类 /71
5.3 PHP5与PHP4的差异 /71
5.4 定义属性和方法 /72
5.4.1 属性与方法的定义 /72
5.4.2 传统的构造函数 /72
5.4.3 PHP类中的一些特殊
方法 /73
5.5 类的引用、扩展与继承 /75
5.5.1 类的引用 /75
5.5.2 类的扩展与继承 /75
5.6 操作与调用 /77
5.6.1 静态类的调用 /77
5.6.2 实例类型判断方法
instanceof /77
5.6.3 对象的克隆 /77
5.7 一些设计观念 /80
5.7.1 策略模式(Strategy
Pattern) /80
5.7.2 单例模式(Singleton
Pattern) /81
5.7.3 工厂模式(Factory
Pattern) /82
5.8 接口与抽象类 /86
5.8.1 接口的定义 /86
5.8.2 单一接口的实现 /86
5.8.3 多重接口的实现 /87
5.8.4 抽象类 /88
5.9 小结 /90
第6章 文件系统与文本数据
操作 /91
6.1 PHP中的目录操作 /91
6.1.1 打开目录 /91
6.1.2 关闭目录 /92
6.1.3 读取目录中的文件 /92
6.1.4 创建目录 /92
6.1.5 删除目录 /93
6.2 PHP中的文件操作 /93
6.2.1 打开文件 /93
6.2.2 关闭文件 /94
6.2.3 读取文件 /94
6.2.4 写入文件 /95
6.2.5 删除文件 /96
6.2.6 复制文件 /96
6.3 本地文件的操作实例——
小型留言本 /96
6.3.1 留言发表模块 /96
6.3.2 浏览模块 /98
6.4 远程文件的操作实例 /99
6.5 文件的上传与下载 /99
6.5.1 文件的上传 /99
6.5.2 文件的下载 /101
6.6 小结 /101
第7章 字符的处理与正则表
达式 /102
7.1 字符类型的特殊性 /102
7.2 字符的显示与格式化 /103
7.2.1 字符的显示 /103
7.2.2 字符的格式化 /103
7.3 常见字符串的操作 /104
7.3.1 字符串重复操作
str_repeat /104
7.3.2 字符串替换操作str_replace
和str_ireplace /105
7.3.3 字符串分解操作str_split /106
7.3.4 字符串单词数的计算函
数str_word_count /107
7.3.5 字符串查找操作strstr /108
7.3.6 获得字符串长度strlen /108
7.3.7 获得字符串子串substr /109
7.4 正则表达式简介 /109
7.5 正则表达式与字符操作综合
应用 /110
7.5.1 获得与模式匹配的数组
单元preg_grep /110
7.5.2 进行全局正则表达式
匹配preg_match_all /111
7.5.3 进行正则表达式匹配
preg_match /113
7.5.4 转义正则表达式字符
preg_quote /114
7.5.5 执行正则表达式的搜索和
替换函数preg_replace /114
7.5.6 通过回调函数执行正则
表达式的搜索和替换
preg_replace_ callback /115
7.5.7 用正则表达式进行字符
串分割preg_split /115
7.6 字符操作的注意事项 /117
7.7 小结 /118
第8章 数组操作与数据结构
算法 /119
8.1 一维数组与多维数组 /119
8.1.1 一维数组简介 /119
8.1.2 多维数组简介 /120
8.2 常用的数组操作 /120
8.2.1 数组的创建与调用 /120
8.2.2 数组的更新 /122
8.2.3 数组元素的遍历 /122
8.3 数组索引与键名的操作
技巧 /123
8.4 数组的排序 /125
8.4.1 递增排序sort /125
8.4.2 递减排序rsort /126
8.4.3 数组排序array_
multisort /126
8.5 几种数组的应用实例 /128
8.5.1 顺序查找 /128
8.5.2 二分法查找 /128
8.5.3 使用array_search
函数进行查找 /129
8.5.4 线性表的入栈与出栈 /130
8.5.5 数组的合并 /131
8.5.6 数组的拆分 /133
8.5.7 随机排序 /135
8.6 小结 /135
第9章 PHP程序调试 /136
9.1 PHP中常见错误类型 /136
9.1.1 语法错误 /136
9.1.2 语义错误 /138
9.1.3 逻辑错误 /138
9.1.4 注释错误 /138
9.1.5 运行时错误 /139
9.2 PHP程序调试策略 /139
9.2.1 PHP的错误级别 /139
9.2.2 打开PHP的错误报告 /141
9.2.3 使用print进行程序
调试 /141
9.3 使用PHPEclipse进行PHP
程序调试 /142
9.3.1 使用Eclipse编写
PHP程序的好处 /142
9.3.2 PHPEclipse的安装与
启动 /142
9.3.3 PHPEclipse的使用 /143
9.3.4 PHPEclipse的语法
错误强调功能 /145
9.3.5 PHPEclipse的调试
界面 /146
9.3.6 使用PHPEclipse调试
PHP代码的常见问题 /149
9.4 错误的处理 /150
9.4.1 错误的隐藏 /150
9.4.2 错误信息的定制 /151
9.4.3 超时错误的处理 /152
9.5 小结 /153
第10章 PHP中的异常处理 /154
10.1 异常处理的原理 /154
10.2 PHP中的异常处理 /155
10.2.1 异常类Exception /155
10.2.2 异常抛出关键字
throw /156
10.2.3 异常捕获语句try-
catch /157
10.2.4 异常处理函数设置
set_exception_handler /158
10.2.5 完整的异常信息 /159
10.3 扩展的异常处理类 /161
10.4 异常的传递与重掷 /164
10.5 小结 /166
第11章 PHP与表单 /167
11.1 HTML表单简介 /167
11.1.1 表单标签form /168
11.1.2 输入标签input与
文本框 /168
11.1.3 按钮 /169
11.1.4 单选按钮与复选框 /170
11.1.5 多行文本域标签
textarea /172
11.1.6 下拉框与列表框标签
select /173
11.2 表单数据的接收 /174
11.2.1 GET方法 /174
11.2.2 POST方法 /177
11.3 常用表单数据的验证方法 /178
11.3.1 姓名验证 /178
11.3.2 日期验证 /178
11.3.3 E-mail地址验证 /179
11.3.4 密码字段验证 /179
11.3.5 改进的用户信息
输入程序 /179
11.4 URL编码解码函数 /182
11.4.1 编码字符串urlencode /182
11.4.2 解码字符串urldecode /183
11.5 小结 /183
第12章 PHP与JavaScript
交互 /184
12.1 JavaScript简介 /184
12.2 JavaScript的数据类型 /185
12.3 JavaScript程序设计基础 /185
12.3.1 在HTML中嵌入
JavaScript /186
12.3.2 变量 /186
12.3.3 注释 /186
12.3.4 函数的定义与调用 /187
12.3.5 条件语句 /187
12.3.6 循环语句 /190
12.3.7 对象 /192
12.3.8 事件 /194
12.4 PHP动态生成JavaScript
代码 /194
12.4.1 多行输出 /194
12.4.2 单行输出 /195
12.4.3 PHP动态生成
JavaScript实例——
进度条 /196
12.5 JavaScript中调用PHP
程序 /197
12.5.1 页面的跳转 /197
12.5.2 隐性调用PHP程序 /198
12.6 JavaScript和PHP综合实
例——表单验证 /199
12.6.1 表单设计 /199
12.6.2 JavaScript代码设计 /200
12.6.3 PHP代码设计 /202
12.6.4 代码的运行 /203
12.7 小结 /204
第13章 关系型数据库的基础
知识 /205
13.1 关系型数据库与关系型数
据库系统的介绍 /205
13.2 关系型数据库系统的结构
与运行过程 /206
13.2.1 关系型数据库系统
的层次结构 /206
13.2.2 关系型数据库系统
的运行过程 /207
13.3 常用关系型数据库的介绍 /208
13.4 SQL语言简介 /209
13.5 常见数据库设计问题 /209
13.6 关系型数据库的设计原则 /210
13.6.1 第一范式(1NF) /210
13.6.2 第二范式(2NF) /211
13.6.3 第三范式(3NF) /211
13.7 小结 /212
第14章 MySQL的安装与
操作 /213
14.1 MySQL数据库介绍 /213
14.2 安装与配置 /213
14.2.1 下载MySQL /214
14.2.2 MySQL的安装 /214
14.2.3 MySQL的配置 /215
14.2.4 MySQL的启动与
关闭 /217
14.3 如何创建一个数据库与表 /218
14.3.1 登录与退出MySQL
命令行管理模式 /218
14.3.2 MySQL的数据库
操作 /219
14.3.3 表的创建 /221
14.4 数据类型介绍 /223
14.5 索引与唯一值 /224
14.6 数据的操作 /225
14.6.1 表的修改 /225
14.6.2 表的删除 /226
14.6.3 数据的查询 /226
14.6.4 数据的插入 /232
14.6.5 数据的更新 /234
14.6.6 数据的删除 /234
14.7 小结 /235
第15章 MySQL与PHP的
应用 /236
15.1 PHP结合数据库应用的
优势 /236
15.2 Web数据库的工作原理 /236
15.3 使用PHP操作MySQL
数据库 /237
15.3.1 数据库服务器的
连接与断开 /237
15.3.2 选择数据库 /238
15.3.3 执行SQL语句 /238
15.3.4 获得查询结果集
的记录数 /240
15.3.5 获得结果集的某
一条记录 /240
15.3.6 逐行获取结果集的
每条记录 /241
15.3.7 结果集的分页 /244
15.3.8 用户动态添加记录 /245
15.3.9 用户动态更新记录 /247
15.3.10 用户动态删除记录 /250
15.4 使用PHP获取MySQL
数据库的信息 /251
15.4.1 获取数据库的信息 /251
15.4.2 获取表的信息 /252
15.4.3 获取列的数目 /253
15.4.4 获取列的名称 /253
15.4.5 获取列的数据类型 /253
15.4.6 获取列的长度 /253
15.4.7 获取列的标志 /254
15.4.8 查看表中各列属性
的应用实例 /254
15.5 常见问题与解决方案 /255
15.6 小结 /257
第16章 数据库中的程序
逻辑 /258
16.1 数据库程序逻辑与PHP
程序逻辑的分体设计原则 /258
16.2 数据库程序逻辑与数据的
关系 /259
16.3 存储过程的设计 /259
16.3.1 定界符重定义 /259
16.3.2 存储过程的创建与
调用 /260
16.3.3 存储过程的参数 /261
16.3.4 复合语句 /264
16.3.5 变量 /264
16.3.6 条件语句 /266
16.3.7 循环语句 /268
16.3.8 游标 /270
16.3.9 存储过程的删除 /272
16.4 触发器的设计 /272
16.4.1 触发器的创建与
触发 /272
16.4.2 触发器的删除 /273
16.5 PHP与存储过程、触发器 /273
16.5.1 PHP调用存储过程 /273
16.5.2 PHP调用触发器 /274
16.6 小结 /276
第17章 Session与Cookie /277
17.1 Session与Cookie简介 /277
17.2 PHP中Session的实现 /278
17.2.1 标识开始使用
Session /278
17.2.2 Session预定义数组 /278
17.2.3 Session的检测与
注销 /278
17.2.4 PHP中Session处
理的定制 /278
17.3 Session应用实例——登录
验证 /283
17.3.1 数据库设计 /283
17.3.2 HTML表单的设计 /284
17.3.3 验证页面的编写 /285
17.3.4 欢迎页面的编写 /286
17.3.5 注销页面的编写 /286
17.3.6 代码的运行 /286
17.3.7 代码的改进 /287
17.4 PHP中Cookie的实现 /287
17.4.1 Cookie语法格式 /288
17.4.2 Cookie预定义数组 /288
17.4.3 创建一个Cookie /288
17.4.4 创建一个有时间
限制的Cookie /289
17.4.5 创建一个有范围
限制的Cookie /289
17.4.6 删除Cookie /289
17.4.7 浏览器重定向 /290
17.4.8 Cookie的常见问题 /290
17.5 Cookie应用实例——登录
验证 /291
17.5.1 HTML表单的设计 /291
17.5.2 验证页面的编写 /292
17.5.3 欢迎页面的编写 /293
17.5.4 代码的运行 /293
17.6 Cookie与Session的比较 /294
17.7 小结 /294
第18章 MySQL与PHP的应用
实例——留言本 /296
18.1 留言本实例的系统分析 /296
18.1.1 系统简介 /296
18.1.2 系统模型设计 /296
18.1.3 数据库设计 /297
18.1.4 公共功能设计 /298
18.2 使用MySql与PHP创建
一个留言本 /299
18.2.1 查看留言功能 /299
18.2.2 发表留言功能 /302
18.2.3 管理员身份验证
功能 /304
18.2.4 管理首页设计 /306
18.2.5 留言回复功能 /308
18.2.6 留言删除功能 /310
18.2.7 留言回复删除功能 /311
18.2.8 留言审批功能 /311
18.2.9 退出管理员登录
功能 /312
18.3 小结 /312
展开
PHP是一种应用广泛的Web应用程序开发平台。相比ASP,PHP更专业一些,同时在开发效率、灵活性、安全性、性能方面比ASP技术更强。开源的PHP经过多年发展, PHP5开始增强的企业特性,使PHP更广泛地被应用于大型网站与系统的建设,使PHP不再局限于个人小型网站的使用。
本书假设读者的开发基础为零,首先从搭建PHP的运行和开发环境、创建第一个Web应用程序的实用技术出发,详细介绍了PHP的编程基础知识、常用技巧以及表单等基本Web元素的应用。然后以MySQL数据库为主,详细介绍了PHP与数据库的各种操作方法,并对触发器和存储过程的编写方法进行了详细的介绍,为后续的应用程序开发奠定了坚实的基础。本书具备以下特色:
(1)实例丰富。书中所有的知识点都附带了可以运行的PHP代码,并包含了详细的注释。在代码的基础上学习,可以为今后的应用打下坚实的基础。
(2)细节翔实。本书对PHP的各方面知识做了全面的介绍,包括如何配置安装环境、基本语法以及与数据库的连接操作。
(3)兼顾实际开发。本书对PHP与其他网页元素诸如表单、文件、Cookie等做了很详细的介绍,还使用了几个完整的实例综合介绍了PHP的实际应用。这些极具代表性的实例对读者的实际应用、毕业设计等都具有指导作用。
根据大多数开发人员的学习经验,学习PHP,首先要学习其基础知识与相关的数据库操作,而扩展库和其他相关知识并不是PHP的核心功能,可以在需要的时候进行学习。但是,掌握了这些知识,可以更好地领悟PHP的精髓。本书也正是按照上面的学习流程进行讲解的,由易到难、由初级到高级,逐步将读者从一名PHP的初学者转变成一名精通PHP的程序开发人员。对于初学者,本书有以下学习建议,供读者参考。
(1)多阅读源代码。网上的很多源代码的设计思想与编程方法有很好的利用价值,在掌握了一定PHP基础知识后,阅读一些优秀的代码,可以很快地提高自身的水平。
(2)多练习编写源代码。本书提供了大量的范例,读者在阅读后根据自己的理解进行编写和调试,可以获得比单纯阅读更多的收获。
(3)养成良好的编程习惯。例如,在代码中适当的位置注释、代码缩进、语句不能过长等。
如果在学习的过程中遇到问题,及时提问可以很快获得答案。下面是一些常见的PHP网站或论坛,很多问题都可以从下面的网站中获得答案。
http://www.php.net/:PHP的官方网站,发布PHP的最新版本和所有的技术手册。
http://www.phpx.com/:中国PHP联盟,包含很多PHP方面的教程、文章和代码等。
http://www.phpe.com/:超越PHP网站,是以讨论PHP技术及教学为主的技术站点,该网站的一大特色就是其源代码也是公开的。
http://www.phpv.com/:PHP5研究室,主要从事PHP5的研究,该网站提供了很多PHP5方面的软件及学习资料。
http://www.phpchina.cn/:PHP China,是面向PHP使用和爱好者以及与PHP有关的单位与个人自愿参加的组织。该网站主要进行PHP的技术性讨论以及发布PHP的最新动态等。
http://community.csdn.net/:CSDN社区,CSDN是国内知名的计算机技术讨论社区。其中的PHP讨论版提供了很多很好的PHP技术资料。
在学习PHP的过程中,多实践是学习的关键。边阅读边进行代码调试可以有效地掌握PHP的知识点,并且及时发现学习中的难点和重点。
本书适合以下的读者:
本科/高职/中职学生
网页专业设计制作人员
网页制作爱好者
社会培训班学生
毕业设计的学生
本书由吉林工程技术师范学院的马述清、郭天娇、马玉萍编写,其中,马述清编写了第1~7章,郭天娇编写了第8~13章,马玉萍编写了第14~18章。另外,张增强、雷凤、刘桂珍、王凯迪、张昆、赵桂芹、鲍洁、张友、李亚伟、王小龙和张金霞等也参与了本书的部分代码编写、资料收集、校对、测试等工作。本书内容翔实,结构紧凑,覆盖知识面广泛。由于编写时间较为仓促,书中难免会有疏漏和不足之处,恳请广大读者提出宝贵意见,以便我们在下一个版本中修订改进。
编 者
展开