前言:
PHP的英文全称是 Hypertext Preprocessor(超文本预处理语言)。它是在服务器端执行的脚本语言。与 C语言类似,PHP是常用的网站编程语言。
PHP语言主要有以下特点。
(1)开源性和免费性。由于 PHP解释器的源代码是公开的,所以安全系数较高的网站可以自己更改 PHP的解释程序。另外,PHP运行环境的使用也是免费的。
(2)跨平台性强。 PHP的解释器是开源的,能够在所有操作系统平台上稳定运行,这使 PHP成为常用的服务器语言。
(3)快捷性。 PHP是一门非常容易学习和使用的语言,它的语法特点类似于 C语言,但没有 C语言复杂的地址操作。而且, PHP语言加入了面向对象的概念,再加上它具有简捷的语法规则,使操作编辑非常简单,实用性很强。
(4)面向过程方法和面向对象方法并用。在 PHP的使用中,不仅可以分别使用面向过程方法和面向对象方法,还可以将面向过程方法和面向对象方法一起混用,这是其他编程语言做不到的。
(5)运行高效性。由于 PHP运行在相应的平台解释器上,消耗系统资源比较少,运行环境简单,所以效率很高。
(6)数据库连接广泛性。 PHP可以与很多主流的数据库建立连接,如 MySQL、 ODBC、Oracle、AdabasD、S等。PHP是利用编译的不同函数与这些数据库建立连接的, PHPLIB就是常用的为一般事务提供的基库。因此, PHP一直受到广大编程人员的青睐,是编程初学者进行 Web开发的程序设计语言。
本书内容
本书以初学者为对象,通过学习笔记的方式,系统地介绍了使用 PHP语言进行程序开发的各种技术。本书提供了从入门到编程高手所的各类知识,本书共 15章,大体结构如下。
本书特点
- 由浅入深,循序渐进。本书以初、中级程序员为对象,让他们先从PHP语言基础学起,再学习如何使用PHP语言进行Web交互开发及数据库开发等高级技术,后学习开发一个完整的项目。讲解过程中步骤详尽,版式新颖,读者在阅读时一目了然,从而快速掌握书中内容。
- 教学视频,讲解详细。书中每一章节均提供声图并茂的教学视频。这些视频能够引导初学者快速入门,增强进一步学习的信心,从而快速成为编程高手。
- 实例典型,轻松易学。通过实例学习是非常好的学习方式,本书通过一个知识点、一个实例、一个结果的模式,透彻详尽地讲述了实际开发中所需的各类知识。另外,为了便于读者阅读程序代码,快速学习编程技能,书中的关键代码都提供了相应的注释。
- 学习笔记,学记无忧。本书根据需要在各章安排了学习笔记栏目,让读者可以在学习过程中轻松地理解相关知识点及概念,快速掌握个别技术的应用技巧。
读者对象
- 初学编程的自学者。
- 编程爱好者。
- 大中专院校的教师和学生。
- 相关培训机构的教师和学员。
- 毕业设计的学生。
- 初、中级程序开发人员。
- 程序测试及维护人员。
- 参加实习的菜鸟程序员。
读者服务
为了方便解决本书疑难问题,我们提供了多种服务方式,并由作者团队提供在线技术指导和社区服务,服务方式如下。
- 服务网站:www.mingrisoft.com
- 服务邮箱:mingrisoft@mingrisoft.com
- 企业 QQ:4006751066
- QQ 群:706013952
●服务电话:400-67501966、0431-84978981
目 录
篇? 基础篇
第 1 章 PHP 起步 1
1.1 搭建 PHP 开发环境 1
1.1.1 phpStudy 的下载与安装 1
1.1.2 PHP 服务器的启动与停止 . 3
1.1.3 phpStudy 的常用设置 .. 5
1.2 PhpStorm 的下载与安装 6
1.2.1 PhpStorm 的下载 6
1.2.2 PhpStorm 的安装 8
1.3 PhpStorm 的基本操作 . 14
1.3.1 创建 PHP 项目 . 14
1.3.2 打开已有项目 .. 16
1.3.3 在项目中创建文件夹和文件 17
1.4 PhpStorm 的常用设置 . 21
1.4.1 设置文件编码格式 21
1.4.2 其他常用设置 .. 22
1.5 小结 . 22
第 2 章 PHP 语言基础 23
2.1 PHP 标记风格 .. 23
2.2 PHP 注释的应用 24
2.3 PHP 的数据类型 26
2.3.1 数据类型 26
2.3.2 数据类型转换 .. 27
2.3.3 检测数据类型 .. 29
2.4 PHP 常量 30
2.4.1 定义常量 30
2.4.2 预定义常量 31
2.5 PHP 变量 32
2.5.1 变量赋值及使用 33
2.5.2 PHP 预定义变量 35
2.6 PHP 操作符 . 36
2.6.1 算术操作符 36
2.6.2 字符串操作符 .. 37
2.6.3 赋值操作符 38
2.6.4 递增或递减操作符 38
2.6.5 逻辑操作符 39
2.6.6 比较操作符 40
2.6.7 条件操作符 40
2.6.8 操作符的优先级 41
2.7 PHP 表达式 . 42
2.8 PHP 函数 43
2.8.1 定义和调用函数 43
2.8.2 在函数间传递参数 44
2.8.3 从函数中返回值 46
2.8.4 变量作用域 47
2.9 PHP 编码规范 .. 48
2.9.1 PSR-1 编码规范 48
2.9.2 PSR-2 编码规范 49
2.10 小结 51
第 3 章 流程控制语句 52
3.1 条件控制语句 .. 52
3.1.1 if 语句 52
3.1.2 ifelse 语句 54
3.1.3 elseif 语句 .. 55
3.1.4 switch 语句 56
3.2 循环控制语句 .. 58
3.2.1 for 循环语句 58
3.2.2 while 循环语句 60
3.2.3 dowhile 循环语句 61
3.3 跳转语句 62
3.3.1 break 语句 . 62
3.3.2 continue 语句 63
3.4 学习笔记 64
学习笔记一:ifelse 执行顺序 64
学习笔记二:while 循环语句和 dowhile 循环语句的区别 64
3.5 小结 . 65
第 4 章 字符串操作与正则表达式 66
4.1 字符串的定义方法 66
4.1.1 使用单引号或双引号定义字符串 66
4.1.2 使用定界符定义字符串 67
4.2 字符串操作 . 68
4.2.1 去除字符串首尾空格和特殊字符 68
4.2.2 获取字符串的长度 70
4.2.3 截取字符串 73
4.2.4 检索字符串 76
4.2.5 替换字符串 79
4.2.6 分割字符串、合成字符串 81
4.3 正则表达式 . 83
4.3.1 正则表达式简介 83
4.3.2 行定位符 83
4.3.3 元字符 .. 84
4.3.4 限定符 .. 84
4.3.5 字符类 .. 85
4.3.6 排除字符 85
4.3.7 选择字符 85
4.3.8 转义字符 86
4.3.9 分组 . 86
4.4 正则表达式在 PHP 中的应用 86
4.5 学习笔记 88
学习笔记一:慎用 strlen() 函数处理中文字符 88
学习笔记二:strstr() 函数和 strpos() 函数的区别 89
4.6 小结 . 89
第 5 章 PHP 数组应用 90
5.1 什么是数组 . 90
5.2 创建数组 91
5.2.1 使用 array() 函数创建数组 91
5.2.2 通过赋值方式创建数组 93
5.3 数组的类型 . 93
5.3.1 数字索引数组 .. 93
5.3.2 关联数组 94
5.4 多维数组 95
5.5 遍历数组 97
5.6 统计数组元素个数 98
5.7 查询数组中的指定元素 99
5.8 获取数组中的后一个元素 102
5.9 向数组中添加元素 102
5.10 删除数组中的重复元素 103
5.11 其他常用数组函数 104
5.11.1 数组排序函数 104
5.11.2 数组计算函数 106
5.12 学习笔记 . 107
学习笔记一:数组的索引 .. 107
学习笔记二:使用 count() 函数计算二维数组的长度 107
5.13 小结 .. 108
第 6 章 面向对象的程序设计 ..109
6.1 面向对象的基本概念 109
6.1.1 类的概念 . 109
6.1.2 对象的概念 109
6.1.3 面向对象编程的三大特点 .. 110
6.2 PHP 与对象 111
6.2.1 类的定义 ..111
6.2.2 成员方法 ..111
6.2.3 类的实例化 112
6.2.4 成员变量 . 113
6.2.5 类常量 114
6.2.6 构造方法和析构方法 115
6.2.7 继承和多态 118
6.2.8 $this->和::的使用 122
6.2.9 数据隐藏 . 124
6.2.10 静态变量(方法) 127
6.3 PHP 对象的高级应用 128
6.3.1 fifinal 关键字 128
6.3.2 抽象类 129
6.3.3 接口的使用 131
6.3.4 对象类型检测 133
6.3.5 魔术方法 (__) . 133
6.4 面向对象的应用 . 138
6.5 学习笔记 140
学习笔记一:类和对象的关系 . 140
学习笔记二:方法与函数的区别 .. 141
6.6 小结 141
第二篇? 提高篇
第 7 章 PHP 与 Web 页面交互142
7.1 Web 工作原理 142
7.1.1 HTTP 协议 142
7.1.2 Web 数据交互过程 .. 143
7.2 HTML 表单 144
7.2.1 HTML 简介 144
7.2.2 HTML 表单结构 . 147
7.2.3 表单元素 . 148
7.3 CSS 美化表单页面 151
7.3.1 CSS 简介 . 151
7.3.2 插入 CSS 样式表 152
7.3.3 CSS 应用实例 155
7.4 JavaScript 表单验证 158
7.4.1 JavaScript 简介 158
7.4.2 调用 JavaScript 159
7.4.3 用户注册表单验证实例 . 160
7.5 PHP 获取表单数据 163
7.5.1 获取 POST 方式提交的表单数据 .. 164
7.5.2 获取 GET 方式提交的表单数据 165
7.6 学习笔记 167
学习笔记一:Web 工作原理 167
学习笔记二:JavaScript 和 jQuery 168
7.7 小结 168
第 8 章 Cookie 与 Session169
8.1 Cookie 管理 169
8.1.1 了解 Cookie 169
8.1.2 创建 Cookie 171
8.1.3 读取 Cookie 172
8.1.4 删除 Cookie 173
8.1.5 Cookie 的生命周期 .. 174
8.1.6 7 天免登录功能的实现 .. 174
8.2 Session 管理 180
8.2.1 了解 Session 180
8.2.2 创建会话 . 181
8.2.3 使用 Session 实现判断用户登录功能 . 182
8.3 Session 高级应用 185
8.3.1 Session 临时文件 185
8.3.2 Session 缓存 186
8.3.3 Session 数据库存储 . 187
8.4 学习笔记 192
学习笔记一:Cookie 和 Session 的区别 192
学习笔记二:Cookie 和 Session 的关系 193
8.5 小结 193
第 9 章 PHP 操作 MySQL 数据库 .194
9.1 PHP 操作 MySQL 数据库的方法 194
9.1.1 连接 MySQL 服务器 194
9.1.2 选择 MySQL 数据库 196
9.1.3 执行 SQL 语句 197
9.1.4 将结果集返回到数组中 . 198
9.1.5 从结果集中获取一行作为对象 202
9.1.6 从结果集中获取一行作为枚举数组 204
9.1.7 从结果集中获取一行作为关联数组 205
9.1.8 获取查询结果集中的记录数 205
9.1.9 释放内存 . 206
9.1.10 关闭连接 207
9.2 管理 MySQL 数据库中的数据 .. 207
9.2.1 添加数据 . 208
9.2.2 编辑数据 . 212
9.2.3 删除数据 . 217
9.3 学习笔记 219
学习笔记一:mysqli_fetch_array() 函数、mysqli_fetch_assoc() 函数、
mysqli_fetch_row() 函数和 mysqli_fetch_object() 函数的区别 .. 219
学习笔记二:mysqli_prepare() 函数和 mysqli_stmt_prepare() 函数的区别 220
9.4 小结 220
第 10 章 PDO 数据库抽象层 ..221
10.1 什么是 PDO . 221
10.1.1 PDO 概述 221
10.1.2 PDO 的特点 . 222
10.1.3 安装 PDO 222
10.2 PDO 连接数据库 223
10.2.1 PDO 构造函数 .. 223
10.2.2 DSN 详解 224
10.3 在 PDO 中执行 SQL 语句 . 224
10.4 在 PDO 中获取结果集 . 226
10.4.1 fetch() 方法 226
10.4.2 fetchAll() 方法 .. 229
10.4.3 fetchColumn() 方法 231
10.5 在 PDO 中捕获 SQL 语句中的错误 .. 232
10.5.1 默认模式 233
10.5.2 警告模式 234
10.5.3 异常模式 235
10.6 PDO 中的错误处理 . 236
10.6.1 errorCode() 方法 236
10.6.2 errorInfo() 方法 . 236
10.7 PDO 中的事务处理 . 237
10.8 学习笔记 . 239
学习笔记一:为什么 PDO 能够防止 SQL 注入 . 239
学习笔记二:PDO 类和 PDOStatement 类的关系 239
10.9 小结 .. 239
第 11 章 文件系统 .240
11.1 文件处理 .. 241
11.1.1 打开 / 关闭文件 241
11.1.2 从文件中读取数据 242
11.1.3 将数据写入文件 249
11.1.4 操作文件 250
11.2 目录处理 .. 251
11.2.1 打开 / 关闭目录 251
11.2.2 浏览目录 252
11.2.3 操作目录 253
11.3 文件上传 .. 254
11.3.1 配置 php.ini 文件 254
11.3.2 预定义变量 $_FILES 255
11.3.3 文件上传函数 258
11.3.4 多文件上传 .. 262
11.4 文件下载 .. 265
11.5 学习笔记 .. 268
学习笔记一:fifile() 函数和 fifile_get_contents() 函数的区别 268
学习笔记二:设置表单属性 enctype .. 268
11.6 小结 268
第 12 章 图形图像处理技术 269
12.1 在 PHP 中加载 GD 库 .. 269
12.2 GD 库的应用 270
12.2.1 创建简单的图像 270