目 录 **篇? 基础篇 第 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