本书以PHP 7为平台。全书由4部分组成,涵盖理论和实践教学的全过程。第1部分“实用教程”介绍PHP、HTML+CSS基础知识、PHP环境与开发入门、PHP基础语法、PHP数组与字符串、PHP常用功能模块、PHP面向对象程序设计、构建PHP互动网页、数据库基础、使用PHP扩展函数库操作数据库、使用PDO通用接口操作数据库、PHP与AJAX等内容;第2部分“实训”选择教程中有代表性的实例让读者先试做,然后提出要求,让读者参照书中的例子自己设计开发新功能,循序渐进地训练、增强读者的动手能力;第3部分“综合应用实训—PHP/MySQL学生成绩管理系统”介绍一个基于流行ThinkPHP 框架开发的学生成绩管理系统,以培养读者运用PHP解决实际问题的能力;第4部分“附录”由附录A“PHP程序调试与异常处理”和附录B“PHP+HTML混合非框架学生成绩管理系统”组成。本书配有电子课件、书中所有实例程序源代码、综合应用实训项目工程源文件,读者均可从华信教育资源网免费下载。书中所有实例程序均已上机调试通过。本书既可作为大学本科和高职高专相关课程教材与教学参考书,也可供从事PHP应用系统开发的人员学习和参考。
郑阿奇,南京师范大学计算机科学与技术学院,副教授,江苏省计算机学会高级会员。曾获江苏省教学二等奖成果奖2项,全国高校出版社畅销图书二等奖、江苏省科技进步四等奖、江苏省畅销图书编辑二等奖、江苏省优秀软件奖、教育部优秀教程二等奖等。出版图书多部。
第1部分 实 用 教 程
第1章 PHP、HTML+CSS基础知识 1
1.1 PHP和HTML简介 1
1.1.1 PHP 1
1.1.2 HTML+CSS+JavaScript 3
1.1.3 HTML基本结构 3
1.2 HTML基础 5
1.2.1 基本描述 6
1.2.2 设置文本格式 7
1.2.3 多媒体标记 10
1.2.4 表格的设置 11
1.2.5 画布 13
1.3 表单 15
1.3.1 表单标记 15
1.3.2 表单输入控件 16
1.3.3 其他表单控件 19
1.4 超链接 22
1.5 框架 23
1.6 HTML 5高级功能 26
1.7 层叠样式表CSS 26
1.7.1 样式表定义 26
1.7.2 样式的继承和作用顺序 30
1.7.3 CSS 3新特性 30
1.7.4 HTML 5+CSS 3 31
习题1 32
第2章 PHP环境与开发入门 34
2.1 PHP环境搭建 34
2.1.1 组件的选择 34
2.1.2 操作系统准备 34
2.1.3 安装Apache服务器 36
2.1.4 安装PHP 37
2.1.5 安装MySQL数据库 39
2.1.6 安装Eclipse开发工具 43
2.2 PHP运行环境测试 46
2.2.1 PHP项目与程序运行 46
2.2.2 最简单的PHP程序 49
2.2.3 同一页面上的PHP交互 50
2.2.4 不同页面上的PHP交互 51
2.3 基于模板的程序开发 52
2.3.1 安装配置Smarty 52
2.3.2 实例——显示和录入学生成绩 53
2.4 PHP集成环境 55
2.4.1 phpStudy集成环境 55
2.4.2 WampServer集成环境 57
2.5 PHP项目迁移 59
习题2 61
第3章 PHP基础语法 62
3.1 PHP语法入门 62
3.1.1 PHP标记风格 62
3.1.2 PHP程序注释 63
3.1.3 PHP页面输出 63
3.1.4 HTML嵌入PHP 63
3.1.5 PHP使用JavaScript 64
3.2 数据类型 65
3.2.1 整型 65
3.2.2 浮点型 65
3.2.3 字符串 66
3.2.4 布尔型 68
3.2.5 数组和对象 68
3.2.6 空类型 69
3.2.7 资源型 69
3.2.8 伪类型 69
3.2.9 类型转换 70
3.3 变量与常量 71
3.3.1 自定义变量 71
3.3.2 可变变量 74
3.3.3 预定义变量 75
3.3.4 外部变量 76
3.3.5 常量 78
3.4 运算符与表达式 79
3.4.1 算术运算符 80
3.4.2 赋值运算符 80
3.4.3 位运算符 81
3.4.4 比较运算符 81
3.4.5 错误控制运算符 82
3.4.6 执行运算符 82
3.4.7 递增/递减运算符 82
3.4.8 逻辑运算符 83
3.4.9 字符串运算符 84
3.4.10 数组运算符和类型运算符 84
3.4.11 运算符优先级和结合性 85
3.4.12 表达式 85
3.5 程序流程控制 86
3.5.1 条件控制语句 86
3.5.2 循环控制语句 90
3.5.3 流程控制符 93
3.5.4 流程控制的替代语法 95
3.5.5 包含文件操作 96
3.5.6 declare结构 97
3.6 PHP函数 97
3.6.1 用户自定义函数 98
3.6.2 参数的传递 98
3.6.3 函数变量的作用域 99
3.6.4 函数的返回值 99
3.6.5 函数的调用 100
3.6.6 递归函数 101
3.6.7 变量函数 101
3.6.8 系统函数 101
3.6.9 匿名函数 102
3.7 综合实例 102
3.7.1 实例—多项选择题 102
3.7.2 实例—计算器程序 103
习题3 104
第4章 PHP数组与字符串 107
4.1 数组及处理 107
4.1.1 数组的创建和初始化 107
4.1.2 键名和值的操作 110
4.1.3 数组的遍历和输出 113
4.1.4 数组的排序 115
4.1.5 数组的集合操作 119
4.1.6 其他操作 120
4.1.7 PHP 5.4之后版本新增特性 121
4.1.8 实例—处理表格数据 123
4.2 字符串操作 125
4.2.1 字符串的定义与显示 125
4.2.2 字符串的格式化 125
4.2.3 常用的字符串函数 126
4.2.4 字符串的比较 127
4.2.5 字符串的替换 128
4.2.6 字符串与HTML 129
4.2.7 其他字符串函数 130
4.2.8 实例—留言簿内容处理 131
4.3 正则表达式 133
4.3.1 基础知识 133
4.3.2 PHP中正则表达式的应用 136
4.3.3 实例—验证表单内容 139
习题4 140
第5章 PHP常用功能模块 143
5.1 目录与文件操作 143
5.1.1 目录操作 143
5.1.2 文件的打开与关闭 145
5.1.3 文件的写入 147
5.1.4 文件的读取 148
5.1.5 文件的上传与下载 153
5.1.6 其他常用文件函数 156
5.1.7 实例—投票统计 158
5.2 图形处理 160
5.2.1 安装PHP图像库 160
5.2.2 创建图形 160
5.2.3 绘制图形 163
5.2.4 图形的处理 171
5.2.5 其他的图形函数 174
5.2.6 实例—自动生成验证码 175
5.3 日期和时间 177
5.3.1 UNIX时间戳 177
5.3.2 时间转换为时间戳 177
5.3.3 获取日期和时间 178
5.3.4 其他日期和时间函数 180
5.3.5 实例—生成日历 181
习题5 182
第6章 PHP面向对象程序设计 184
6.1 基本概念 184
6.2 PHP中的类 185
6.2.1 创建类 185
6.2.2 类的属性和方法 185
6.2.3 类的实例化 186
6.2.4 类的访问 186
6.2.5 静态属性和方法 187
6.2.6 构造函数和析构函数 188
6.3 类的继承 189
6.3.1 子类访问父类 189
6.3.2 方法重载 190
6.3.3 使用final关键字 190
6.3.4 Traits机制 190
6.4 抽象类与接口 191
6.4.1 抽象类 191
6.4.2 接口 192
6.5 类的魔术方法 194
6.5.1 复制对象 194
6.5.2 方法重载 194
6.5.3 属性重载 195
6.5.4 字符串转换 196
6.5.5 自动加载对象 196
6.5.6 对象序列化 196
6.5.7 对象调用 197
6.6 类型判断与引用 197
6.6.1 对象类型的判断 197
6.6.2 通过变量引用类 198
6.6.3 引用静态调用的类 198
6.7 实例—设计一个学生管理类 199
习题6 200
第7章 构建PHP互动网页 202
7.1 PHP与表单 202
7.1.1 提交表单数据 202
7.1.2 接收表单数据 202
7.1.3 常用表单数据的验证方法 203
7.1.4 实例—使用PHP处理表单数据 203
7.2 URL处理 206
7.2.1 获取URL参数 206
7.2.2 解析URL 207
7.2.3 URL编解码 207
7.3 页面跳转 208
7.3.1 使用header()函数 208
7.3.2 使用HTML标记 208
7.3.3 使用客户端脚本 209
7.4 会话管理 209
7.4.1 会话的工作原理 209
7.4.2 实现会话 209
7.4.3 Cookie技术 212
7.5 实例—制作一个PHP互动网页 216
习题7 221
第8章 数据库基础 222
8.1 数据库系统和SQL语言 222
8.2 数据库及其对象的创建 223
8.2.1 安装MySQL 223
8.2.2 创建数据库 223
8.2.3 创建表 224
8.2.4 创建表间记录完整性 225
8.2.5 创建触发器 226
8.2.6 创建存储过程 227
8.3 录入数据测试数据库对象关系 228
8.3.1 录入表记录 228
8.3.2 触发器功能测试 229
8.3.3 表间记录完整性测试 229
8.3.4 存储过程的功能测试 230
习题8 230
第9章 使用PHP扩展函数库操作数据库 232
9.1 基本原理 232
9.1.1 使用扩展函数库操作数据库的流程 232
9.1.2 各种DBMS的扩展函数 233
9.2 操作MySQL数据库 233
9.2.1 连接数据库服务器 233
9.2.2 选择默认数据库 233
9.2.3 执行SQL语句 234
9.2.4 处理结果集 234
9.2.5 关闭连接 238
9.2.6 其他MySQL扩展函数 238
9.2.7 实例—操作课程表 239
9.3 操作其他数据库 242
9.3.1 操作SQL Server 242
9.3.2 操作Oracle 247
习题9 254
第10章 使用PDO通用接口操作数据库 256
10.1 基本原理 256
10.1.1 PDO的基本概念 256
10.1.2 PDO操作数据库的步骤 257
10.2 操作MySQL数据库 258
10.2.1 创建MySQL的PDO对象 258
10.2.2 实例—开发登录模块 258
10.3 基于PDO的数据库移植 265
10.3.1 安装SQL Server的PDO
驱动 265
10.3.2 更换MySQL为SQL Server 266
习题10 267
第11章 PHP与AJAX 268
11.1 AJAX基础 268
11.1.1 AJAX的工作原理 268
11.1.2 AJAX初始化 269
11.1.3 发送HTTP请求 270
11.1.4 指定响应处理函数 270
11.1.5 处理服务器返回的信息 270
11.2 PHP与AJAX交互 271
11.2.1 使用GET方法 271
11.2.2 使用POST方法 273
11.2.3 实例——AJAX的应用 276
习题11 278
第2部分 实 训
实训1 PHP、HTML+CSS基础知识 279
实训1.1 基本标记 279
实训1.2 表格 279
实训1.3 表单 280
实训2 PHP环境与开发入门 280
实训2.1 环境安装与简单开发 280
实训2.2 Smarty模板开发 280
实训2.3 集成环境与项目迁移 280
实训3 PHP基础语法 281
实训3.1 变量及输出 281
实训3.2 程序流程控制 281
实训3.3 函数应用 281
实训4 PHP数组与字符串 282
实训4.1 数组处理 282
实训4.2 字符串操作 282
实训4.3 正则表达式 282
实训5 PHP常用功能模块 282
实训5.1 文件操作 282
实训5.2 图形处理 282
实训5.3 日期时间处理 283
实训6 PHP面向对象程序设计 283
实训7 构建PHP互动网页 283
实训8 数据库及对象创建与操作 284
实训8.1 熟悉MySQL 284
实训8.2 创建数据库和表 284
实训8.3 创建和测试数据库对象 284
实训9 使用PHP扩展函数库操作数据库 285
实训10 使用PDO通用接口操作数据库 286
实训11 PHP与AJAX 286
第3部分 综合应用实训—PHP/MySQL学生成绩管理系统
P.1 ThinkPHP入门 287
P.1.1 ThinkPHP的安装 287
P.1.2 ThinkPHP项目结构 290
P.1.3 一个简单的ThinkPHP程序 293
P.2 ThinkPHP应用系统开发 298
P.2.1 系统架构 298
P.2.2 主页设计 299
P.2.3 学生管理 301
P.2.4 成绩管理 306
P.2.5 课程管理 310
P.3 自己设计实践 312
P.3.1 课程记录操作和查询计算统计 312
P.3.2 学生课程成绩信息查询 313
第4部分 附 录
附录A PHP程序调试与异常处理 314
A.1 程序调试 314
A.1.1 常见的编程错误 314
A.1.2 PHP错误报告管理 315
A.1.3 PHP错误调试方法 315
A.2 异常处理 316
A.2.1 异常处理类 316
A.2.2 PHP的异常处理方法 317
附录B PHP+HTML混合非框架学生成绩管理系统 319