细说PHP(第4版)

细说PHP(第4版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2019-07
版次: 1
ISBN: 9787121370625
定价: 158.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 728页
58人买过
  • 本书是畅销书升级版,全书共分为28章,每章都是PHP独立知识点的总结,全部以现在*新的PHP7以上版本应用语法为主。内容涵盖了动态网站开发所需要的后端全栈技术、PHP的常用功能模块和实用技巧、MySQL和Redis两种数据库的设计与应用、PHP面向对象的程序设计思想、数据库抽象层PDO、Web开发的设计模式、自定义接口技术、全球应用排行**的Laravel5.5框架技术,并专门组建专业的开发团队为本书重新开发商业项目EUDPlayer作为案例等。每章都有大量的实用示例及详尽的注释,以加速读者的理解和学习,并为本书单独开发一个微信小程序(图书兄弟),提供和章节配套的精制视频教程、案例和课件下载、扩展文章、章节测试等多方位内容。对于PHP应用开发的新手而言,本书不失为一本好的入门教材,内容既实用又全面,所有实例都可以在开发中直接应用,并辅以配套的视频教程,使读者轻松掌握所学知识。另外,本书也适合有一定基础的网络开发人员和网络爱好者,以及大中专院校的师生阅读与参考。不仅可以作为PHP开发的学习用书,还可以作为从事Web开发的程序员的参考用书和必备手册。对于行家来说,本书也是一本难得的参考手册,读者必将从中获益。 IT兄弟连【易第优(北京)科技股份有限公司】副总裁,PHP中文网(php.cn)首席专家,拥有十多年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务,具有扎实的技术功底。国内资深技术讲师,腾讯网络人气名人讲师,累计授课长达一万课时以上,培养了近百名IT名师,培训数千名学员成功走向IT岗位。熟悉掌握当前应用的各种主流编程语言和数据库,其中,对Web系统开发深有研究,近年来致力于推广开源的PHP技术。 目录 

     

    第1章 LAMP网站构建 1 

    1.1 Web概述 1 

    1.1.1 Web应用的优势 2 

    1.1.2 Web 2.0时代的互联网 3 

    1.1.3 Web开发标准 4 

    1.1.4 认识脚本语言 5 

    1.2 动态网站开发所需的Web构件 5 

    1.2.1 客户端浏览器 6 

    1.2.2 超文本标记语言(HTML) 7 

    1.2.3 层叠样式表(CSS) 8 

    1.2.4 客户端脚本编程语言JavaScript 8 

    1.2.5 Web服务器 9 

    1.2.6 服务器端编程语言 10 

    1.2.7 数据库管理系统 10 

    1.3 几种主流的Web应用程序平台 11 

    1.3.1 Web应用程序开发平台对比分析 11 

    1.3.2 动态网站开发平台技术比较 12 

    1.4 HTTP协议与Web的关系 13 

    1.4.1 HTTP协议概述 13 

    1.4.2 HTTP协议结构 14 

    1.4.3 HTTP请求消息 15 

    1.4.4 HTTP响应消息 15 

    1.4.5 HTTPS是什么 16 

    1.4.6 URL概述 16 

    1.5 Web的工作原理 17 

    1.5.1 情景1:不带应用程序服务器和数据库的服务器 17 

    1.5.2 情景2:带应用程序服务器的Web服务器 18 

    1.5.3 情景3:浏览器访问服务器端的数据库 19 

    1.6 LAMP网站开发组合概述 19 

    1.6.1 Linux操作系统 20 

    1.6.2 Web服务器Apache 20 

    1.6.3 MySQL数据库管理系统 20 

    1.6.4 PHP后台脚本编程语言 21 

    1.6.5 LAMP的发展趋势 21 

    1.6.6 Web的未来发展 21 

    1.7 小结 22 

    第2章 PHP的应用与发展 23 

    2.1 PHP是什么 23 

    2.1.1 从认识PHP开始 23 

    2.1.2 PHP都能做什么 24 

    2.2 PHP的应用 26 

    2.2.1 开发网站和移动网站的应用 26 

    2.2.2 在企业内部信息化系统中的应用 27 

    2.2.3 在App接口开发方面的应用 27 

    2.2.4 对微信公众平台二次开发的应用 28 

    2.2.5 微信小程序开发应用 29 

    2.2.6 PHP在其他方面的应用 29 

    2.3 PHP的开发优势 29 

    2.3.1 简单易学 30 

    2.3.2 开发效率高 30 

    2.3.3 开发成本低 30 

    2.3.4 程序执行效率高 30 

    2.3.5 安全性良好 31 

    2.3.6 功能强大 31 

    2.3.7 可选择性多 31 

    2.4 PHP的发展 31 

    2.4.1 PHP的诞生 31 

    2.4.2 PHP的迭代过程 32 

    2.4.3 PHP的现在 33 

    2.4.4 PHP的未来 33 

    2.5 如何学习PHP 34 

    2.5.1 确定学习的目标 34 

    2.5.2 PHP学习线路图 34 

    2.5.3 坚持动手实验 36 

    2.5.4 Bug解决之道 36 

    2.5.5 看教学视频,让学习变得简单 37 

    2.5.6 优秀的Web程序员是怎样练成的 37 

    2.6 小结 39 

    第3章 从搭建你的PHP开发环境开始 40 

    3.1 几种常见的PHP环境安装方式 40 

    3.1.1 在Linux系统上以源代码包的方式安装环境 40 

    3.1.2 在Windows系统上安装Web工作环境 41 

    3.1.3 搭建学习型的PHP工作环境 41 

    3.2 环境安装对操作系统的选择 41 

    3.2.1 选择网站运营的操作系统 41 

    3.2.2 选择网站开发的操作系统 42 

    3.3 安装集成PHP开发环境 42 

    3.3.1 安装前准备 42 

    3.3.2 安装步骤 42 

    3.3.3 环境测试 43 

    3.4 集成环境中各服务器的配置 45 

    3.4.1 Apache配置 46 

    3.4.2 改变文档根目录www的位置 46 

    3.4.3 修改PHP的默认配置 47 

    3.4.4 phpMyAdmin的应用 47 

    3.4.5 修改MySQL默认的访问权限 48 

    3.5 小结 49 

    第4章 PHP的基本语法 50 

    4.1 第一个PHP脚本程序 50 

    4.2 PHP语言标记 52 

    4.2.1 将PHP代码嵌入HTML中的位置 53 

    4.2.2 解读开始和结束标记 53 

    4.3 指令分隔符“分号” 54 

    4.4 程序注释 54 

    4.5 在程序中使用空白的处理 56 

    4.6 变量 57 

    4.6.1 变量的声明 57 

    4.6.2 变量的命名 58 

    4.6.3 可变变量 59 

    4.6.4 变量的引用赋值 59 

    4.7 变量的类型 60 

    4.7.1 类型介绍 60 

    4.7.2 布尔型(boolean) 61 

    4.7.3 整型(integer) 62 

    4.7.4 浮点型(float或double) 63 

    4.7.5 字符串(string) 63 

    4.7.6 数组(array) 65 

    4.7.7 对象(object) 66 

    4.7.8 资源类型(resource) 66 

    4.7.9 NULL类型 67 

    4.7.10 伪类型介绍 67 

    4.8 数据类型之间相互转换 67 

    4.8.1 自动类型转换 68 

    4.8.2 强制类型转换 68 

    4.8.3 类型转换细节 69 

    4.8.4 变量类型的测试函数 69 

    4.9 常量 70 

    4.9.1 常量的定义和使用 70 

    4.9.2 常量和变量 71 

    4.9.3 PHP新版本可以使用表达式定义常量 72 

    4.9.4 define()和const的区别 72 

    4.9.5 系统中的预定义常量 72 

    4.9.6 PHP中的魔术常量 73 

    4.10 PHP中的运算符 74 

    4.10.1 算术运算符 74 

    4.10.2 字符串运算符 76 

    4.10.3 赋值运算符 76 

    4.10.4 比较运算符 77 

    4.10.5 逻辑运算符 79 

    4.10.6 位运算符 80 

    4.10.7 其他运算符 82 

    4.10.8 运算符的优先级 83 

    4.11 表达式 84 

    4.12 容易混淆的特殊值 84 

    4.13 小结 85 

    第5章 PHP的流程控制结构 86 

    5.1 分支结构 86 

    5.1.1 单一条件分支结构(if) 86 

    5.1.2 双向条件分支结构(else子句) 87 

    5.1.3 多向条件分支结构(elseif子句) 88 

    5.1.4 多向条件分支结构(switch语句) 89 

    5.1.5 巢状条件分支结构 91 

    5.1.6 条件分支结构实例应用(简单计算器) 92 

    5.2 循环结构 93 

    5.2.1 while语句 94 

    5.2.2 do…while循环 95 

    5.2.3 for语句 96 

    5.3 特殊的流程控制语句 99 

    5.3.1 break语句 99 

    5.3.2 continue语句 99 

    5.3.3 exit语句 100 

    5.4 PHP的新版特性――goto语句 100 

    5.5 小结 102 

    第6章 PHP的函数应用 103 

    6.1 函数的定义 103 

    6.2 自定义函数 104 

    6.2.1 函数的声明 104 

    6.2.2 函数的调用 105 

    6.2.3 函数的参数 106 

    6.2.4 函数的返回值 107 

    6.2.5 标量类型声明 109 

    6.3 函数的工作原理和结构化编程 111 

    6.4 PHP变量的范围 111 

    6.4.1 局部变量 111 

    6.4.2 全局变量 112 

    6.4.3 静态变量 113 

    6.5 声明及应用各种形式的PHP函数 114 

    6.5.1 常规参数的函数 115 

    6.5.2 伪类型参数的函数 115 

    6.5.3 引用参数的函数 115 

    6.5.4 默认参数的函数 116 

    6.5.5 可变个数参数的函数 118 

    6.5.6 回调函数 119 

    6.6 递归函数 122 

    6.7 使用自定义函数库 123 

    6.8 PHP匿名函数和闭包 124 

    6.9 小结 125 

    第7章 PHP中的数组与数据结构 126 

    7.1 数组的分类 126 

    7.2 数组的定义 127 

    7.2.1 以直接赋值的方式声明数组 128 

    7.2.2 使用array()语言结构新建数组 129 

    7.2.3 数组简写语法 130 

    7.2.4 多维数组的声明 130 

    7.3 数组的遍历 132 

    7.3.1 使用for语句循环遍历数组 132 

    7.3.2 联合使用list( )、each( )和while循环遍历数组 134 

    7.3.3 使用foreach语句遍历数组 135 

    7.3.4 使用数组的内部指针控制函数遍历数组 138 

    7.4 预定义数组 139 

    7.4.1 服务器变量:$_SERVER 140 

    7.4.2 环境变量:$_ENV 140 

    7.4.3 URL GET变量:$_GET 141 

    7.4.4 HTTP POST变量:$_POST 141 

    7.4.5 request变量:$_REQUEST 142 

    7.4.6 HTTP文件上传变量:$_FILES 142 

    7.4.7 HTTP Cookies:$_COOKIE 142 

    7.4.8 Session变量:$_SESSION 143 

    7.4.9 Global变量:$GLOBALS 143 

    7.5 数组的相关处理函数 143 

    7.5.1 数组的键/值操作函数 143 

    7.5.2 统计数组元素的个数和唯一性 146 

    7.5.3 使用回调函数处理数组的函数 147 

    7.5.4 数组的排序函数 150 

    7.5.5 拆分、合并、分解和接合数组 153 

    7.5.6 数组与数据结构 155 

    7.5.7 其他有用的数组处理函数 157 

    7.6 操作PHP数组需要注意的一些细节 158 

    7.6.1 数组运算符号 158 

    7.6.2 删除数组中的元素 159 

    7.6.3 关于数组下标的注意事项 159 

    7.7 小结 160 

    第8章 PHP面向对象的程序设计 161 

    8.1 面向对象概述 161 

    8.1.1 类和对象之间的关系 161 

    8.1.2 面向对象的程序设计 162 

    8.2 如何抽象一个类 163 

    8.2.1 类的声明 163 

    8.2.2 成员属性 164 

    8.2.3 成员方法 164 

    8.3 通过类实例化对象 166 

    8.3.1 实例化对象 166 

    8.3.2 对象类型在内存中的分配 167 

    8.3.3 对象中成员的访问 168 

    8.3.4 特殊的对象引用“$this” 169 

    8.3.5 构造方法与析构方法 171 

    8.4 封装性 173 

    8.4.1 设置私有成员 174 

    8.4.2 私有成员的访问 175 

    8.4.3 _ _set()、_ _get()、_ _isset()和_ _unset() 4个方法 176 

    8.5 继承性 180 

    8.5.1 类继承的应用 181 

    8.5.2 访问类型控制 182 

    8.5.3 子类中重载父类的方法 184 

    8.6 常见的关键字和魔术方法 186 

    8.6.1 final关键字的应用 186 

    8.6.2 static关键字的使用 187 

    8.6.3 单态设计模式 188 

    8.6.4 const关键字 189 

    8.6.5 instanceof关键字 189 

    8.6.6 克隆对象 190 

    8.6.7 类中通用的方法_ _toString() 191 

    8.6.8 PHP 7新加入的方法_ _ debugInfo() 191 

    8.6.9 _ _call()方法的应用 192 

    8.6.10 自动加载类 194 

    8.6.11 对象串行化 194 

    8.7 抽象类与接口 197 

    8.7.1 抽象类 197 

    8.7.2 接口技术 198 

    8.8 多态性的应用 200 

    8.9 PHP 5.4的Trait特性 201 

    8.9.1 Trait的声明 201 

    8.9.2 Trait的基本使用 202 

    8.10 PHP 7的匿名类 204 

    8.10.1 匿名类的声明 204 

    8.10.2 匿名类的应用 205 

    8.11 PHP 5.3新增加的命名空间 206 

    8.11.1 命名空间的基本应用 206 

    8.11.2 命名空间的子空间和公共空间 208 

    8.11.3 命名空间中的名称和术语 209 

    8.11.4 别名和导入 209 

    8.12 面向对象版图形计算器 211 

    8.12.1 需求分析 211 

    8.12.2 功能设计及实现 212 

    8.12.3 类的组织架构 216 

    8.13 小结 217 

    第9章 字符串处理 219 

    9.1 字符串的处理介绍 219 

    9.1.1 字符串的处理方式 219 

    9.1.2 字符串类型的特点 219 

    9.1.3 双引号中的变量解析总结 220 

    9.2 常用的字符串输出函数 221 

    9.3 常用的字符串格式化函数 223 

    9.3.1 去除空格和字符串填补函数 224 

    9.3.2 字符串大小写的转换 225 

    9.3.3 和HTML标签相关的字符串格式化 225 

    9.3.4 其他字符串格式化函数 228 

    9.4 字符串比较函数 229 

    9.4.1 按字节顺序进行字符串比较 230 

    9.4.2 按自然排序进行字符串比较 230 

    9.5 小结 231 

    第10章 正则表达式 232 

    10.1 正则表达式简介 232 

    10.2 正则表达式的语法规则 233 

    10.2.1 定界符 233 

    10.2.2 原子 234 

    10.2.3 元字符 235 

    10.2.4 模式修正符 238 

    10.3 与Perl兼容的正则表达式函数 238 

    10.3.1 字符串的匹配与查找 239 

    10.3.2 字符串的替换 242 

    10.3.3 字符串的分割和连接 246 

    10.4 文章发布操作示例 248 

    10.5 小结 252 

    第11章 PHP的错误和异常处理 253 

    11.1 错误处理 253 

    11.1.1 错误报告级别 253 

    11.1.2 调整错误报告级别 254 

    11.1.3 使用trigger_error()函数代替die()函数 256 

    11.1.4 自定义错误处理 256 

    11.1.5 写错误日志 257 

    11.2 异常处理 259 

    11.2.1 异常处理实现 260 

    11.2.2 扩展PHP内置的异常处理类 260 

    11.2.3 捕获多个异常 262 

    11.2.4 PHP异常处理新特性 263 

    11.3 小结 264 

    第12章 PHP的日期和时间 265 

    12.1 UNIX时间戳 265 

    12.1.1 将日期和时间转变成UNIX时间戳 265 

    12.1.2 日期的计算 266 

    12.2 在PHP中获取日期和时间 267 

    12.2.1 调用getdate()函数取得日期和时间信息 267 

    12.2.2 日期和时间格式化输出 267 

    12.3 修改PHP的默认时区 269 

    12.4 使用微秒计算PHP脚本执行时间 269 

    12.5 日历类 270 

    12.6 小结 273 

    第13章 文件系统处理 275 

    13.1 文件系统概述 275 

    13.1.1 文件类型 275 

    13.1.2 文件的属性 276 

    13.2 目录的基本操作 278 

    13.2.1 解析目录路径 279 

    13.2.2 遍历目录 280 

    13.2.3 统计目录大小 281 

    13.2.4 建立和删除目录 282 

    13.2.5 复制目录 282 

    13.3 文件的基本操作 283 

    13.3.1 文件的打开与关闭 283 

    13.3.2 写入文件 285 

    13.3.3 读取文件内容 285 

    13.3.4 访问远程文件 287 

    13.3.5 移动文件指针 288 

    13.3.6 文件的锁定机制 289 

    13.3.7 文件的一些基本操作函数 291 

    13.4 文件的上传与下载 292 

    13.4.1 文件上传 292 

    13.4.2 处理多个文件上传 295 

    13.4.3 文件下载 296 

    13.5 设计经典的文件上传类 297 

    13.5.1 需求分析 297 

    13.5.2 程序设计 297 

    13.5.3 文件上传类代码实现 298 

    13.5.4 文件上传类的应用过程 301 

    13.6 小结 303 

    第14章 PHP动态图像处理 304 

    14.1 PHP中GD库的使用 304 

    14.1.1 画布管理 305 

    14.1.2 设置颜色 306 

    14.1.3 生成图像 306 

    14.1.4 绘制图像 307 

    14.1.5 在图像中绘制文字 309 

    14.2 设计经典的验证码类 311 

    14.2.1 设计验证码类 311 

    14.2.2 应用验证码类的实例对象 313 

    14.2.3 表单中应用验证码 313 

    14.2.4 实例演示 314 

    14.3 PHP图片处理 314 

    14.3.1 图片背景管理 314 

    14.3.2 图片缩放 316 

    14.3.3 图片裁剪 317 

    14.3.4 添加图片水印 318 

    14.3.5 图片旋转和翻转 319 

    14.4 设计经典的图像处理类 321 

    14.4.1 需求分析 322 

    14.4.2 程序设计 322 

    14.4.3 图像处理类代码实现 323 

    14.4.4 图像处理类的应用过程 327 

    14.5 小结 328 

    第15章 MySQL数据库概述 329 

    15.1 数据库的应用 329 

    15.1.1 数据库在Web开发中的重要地位 329 

    15.1.2 为什么PHP会选择MySQL作为自己的黄金搭档 330 

    15.1.3 PHP和MySQL的合作方式 330 

    15.1.4 结构化查询语言SQL 331 

    15.2 MySQL数据库的常见操作 331 

    15.2.1 MySQL数据库的连接与关闭 331 

    15.2.2 创建新用户并授权 332 

    15.2.3 创建数据库 333 

    15.2.4 创建数据表 333 

    15.2.5 数据表内容的简单管理 334 

    15.3 小结 335 

    第16章 MySQL数据表的设计 336 

    16.1 数据表(Table) 336 

    16.2 数据值和列类型 337 

    16.2.1 数值类的数据列类型 337 

    16.2.2 字符串类的数据列类型 338 

    16.2.3 日期和时间类的数据列类型 339 

    16.2.4 NULL值 339 

    16.2.5 类型转换 339 

    16.3 数据字段属性 340 

    16.4 数据表对象管理 340 

    16.4.1 创建表(CREATE TABLE) 340 

    16.4.2 修改表(ALTER TABLE) 342 

    16.4.3 删除表(DROP TABLE) 342 

    16.5 数据表的类型及存储位置 343 

    16.5.1 MyISAM数据表 343 

    16.5.2 InnoDB数据表 343 

    16.5.3 选择InnoDB还是MyISAM数据表类型 343 

    16.5.4 数据表的存储位置 344 

    16.6 数据表的默认字符集 344 

    16.6.1 字符集 344 

    16.6.2 字符集支持原理 345 

    16.6.3 创建数据对象时修改字符集 345 

    16.7 创建索引 346 

    16.7.1 主键索引(PRIMARY KEY) 346 

    16.7.2 唯一索引(UNIQUE) 347 

    16.7.3 常规索引(INDEX) 347 

    16.7.4 全文索引(FULLTEXT) 348 

    16.8 数据库的设计技巧 348 

    16.8.1 数据库的设计要求 348 

    16.8.2 命名的技巧 348 

    16.8.3 数据库具体设计工作中的技巧 349 

    16.9 小结 349 

    第17章 SQL语句设计 350 

    17.1 操作数据表中的数据记录(DML) 350 

    17.1.1 使用INSERT语句向数据表中添加数据 350 

    17.1.2 使用UPDATE语句更新数据表中已存在的数据 351 

    17.1.3 使用DELETE语句删除数据表中不需要的数据记录 352 

    17.2 通过DQL命令查询数据表中的数据 352 

    17.2.1 选择特定的字段 353 

    17.2.2 使用AS子句为字段取别名 353 

    17.2.3 DISTINCT关键字的使用 353 

    17.2.4 在SELECT语句中使用表达式的列 354 

    17.2.5 使用WHERE子句按条件检索 355 

    17.2.6 根据空值(NULL)确定检索条件 356 

    17.2.7 使用BETWEEN AND进行范围比较查询 356 

    17.2.8 使用IN进行范围比较查询 356 

    17.2.9 使用LIKE进行模糊查询 356 

    17.2.10 多表查询(连接查询) 357 

    17.2.11 嵌套查询(子查询) 359 

    17.2.12 使用ORDER BY对查询结果排序 359 

    17.2.13 使用LIMIT限定结果行数 360 

    17.2.14 使用统计函数 360 

    17.2.15 使用GROUP BY对查询结果分组 361 

    17.3 查询优化 362 

    17.4 小结 363 

    第18章 数据库抽象层PDO 364 

    18.1 PHP访问MySQL数据库服务器的流程 364 

    18.2 PDO所支持的数据库 365 

    18.3 PDO的安装 366 

    18.4 创建PDO对象 367 

    18.4.1 以多种方式调用构造方法 368 

    18.4.2 PDO对象中的成员方法 370 

    18.5 使用PDO对象 370 

    18.5.1 调整PDO的行为属性 370 

    18.5.2 PDO处理PHP程序和数据库之间的数据类型转换 371 

    18.5.3 PDO的错误处理模式 371 

    18.5.4 使用PDO执行SQL语句 372 

    18.6 PDO对预处理语句的支持 373 

    18.6.1 了解PDOStatement对象 374 

    18.6.2 准备语句 375 

    18.6.3 绑定参数 375 

    18.6.4 执行准备好的查询 376 

    18.6.5 获取数据 377 

    18.6.6 大数据对象的存取 380 

    18.7 PDO的事务处理 381 

    18.7.1 MySQL的事务处理 381 

    18.7.2 构建事务处理的应用程序 382 

    18.8 设计完美分页类 383 

    18.8.1 需求分析 383 

    18.8.2 程序设计 383 

    18.8.3 完美分页类的代码实现 385 

    18.8.4 完美分页类的应用过程 388 

    18.9 管理表books实例 390 

    18.9.1 需求分析 390 

    18.9.2 程序设计 391 

    18.10 小结 397 

    本章必须掌握的知识点 397 

    本章需要了解的内容 398 

    本章需要拓展的内容 398 

    第19章 MemCache管理与应用 399 

    19.1 MemCache概述 399 

    19.1.1 初识MemCache 399 

    19.1.2 MemCache在Web中的应用 400 

    19.2 memcached的安装及管理 401 

    19.2.1 Linux下安装MemCache软件 401 

    19.2.2 Windows下安装MemCache软件 402 

    19.2.3 memcached服务器的管理 403 

    19.3 使用Telnet作为memcached的客户端管理 403 

    19.3.1 连接memcached服务器 403 

    19.3.2 基本的memcached客户端命令 403 

    19.3.3 查看当前memcached服务器的运行状态信息 404 

    19.3.4 数据管理指令 404 

    19.4 PHP的memcached管理接口 405 

    19.4.1 安装PHP中的MemCache应用程序扩展接口 405 

    19.4.2 MemCache应用程序扩展接口 407 

    19.4.3 MemCache的实例应用 411 

    19.5 memcached服务器的安全防护 412 

    19.6 小结 412 

    第20章 会话控制 414 

    20.1 为什么要使用会话控制 414 

    20.2 会话跟踪的方式 415 

    20.3 Cookie的应用 415 

    20.3.1 Cookie概述 415 

    20.3.2 向客户端计算机中设置Cookie 416 

    20.3.3 在PHP脚本中读取Cookie的资料内容 417 

    20.3.4 数组形态的Cookie应用 418 

    20.3.5 删除Cookie 418 

    20.3.6 基于Cookie的用户登录模块 419 

    20.4 Session的应用 420 

    20.4.1 Session概述 420 

    20.4.2 配置Session 421 

    20.4.3 Session的声明与使用 422 

    20.4.4 注册一个会话变量和读取Session 422 

    20.4.5 注销变量与销毁Session 423 

    20.4.6 Session的自动回收机制 424 

    20.4.7 传递Session ID 425 

    20.5 一个简单的邮件系统实例 427 

    20.5.1 为邮件系统准备数据 427 

    20.5.2 编码实现邮件系统 428 

    20.5.3 邮件系统执行说明 430 

    20.6 自定义Session处理方式 431 

    20.6.1 自定义Session的存储机制 431 

    20.6.2 使用数据库处理Session信息 433 

    20.6.3 使用memcached处理Session信息 436 

    20.7 小结 438 

    第21章 Redis的管理与应用 439 

    21.1 从认识Redis开始 439 

    21.1.1 Redis与其他数据库和软件的对比 439 

    21.1.2 Redis的特点 440 

    21.1.3 使用Redis的理由 440 

    21.2 Redis环境安装及管理 441 

    21.2.1 安装Redis 441 

    21.2.2 启动Redis服务 442 

    21.2.3 Redis服务的性能测试 442 

    21.2.4 Redis服务的配置管理 443 

    21.3 Redis客户端管理 444 

    21.3.1 命令行客户端操作 445 

    21.3.2 安装PHP的Redis扩展 445 

    21.4 Redis服务器的基本操作 446 

    21.5 Redis的数据类型 447 

    21.6 PHP操作Redis的通用方法 448 

    21.7 Redis的字符串(String)类型 449 

    21.7.1 相关的命令操作 449 

    21.7.2 应用场景 450 

    21.7.3 使用Redis实现页面缓存 450 

    21.8 Redis的列表(List)类型 451 

    21.8.1 相关的命令操作 452 

    21.8.2 应用场景 453 

    21.8.3 “PHP+Redis”实现消息队列 453 

    21.9 Redis的集合(Set)类型 454 

    21.9.1 相关的命令操作 454 

    21.9.2 应用场景 456 

    21.9.3 “PHP+Redis”实现共同好友功能 456 

    21.10 Redis的Sorted Set有序集合类型 458 

    21.10.1 相关的命令操作 458 

    21.10.2 应用场景 459 

    21.10.3 “PHP+Redis”实现排行榜功能 460 

    21.11 Redis的哈希(hash)表类型 461 

    21.11.1 相关的命令操作 461 

    21.11.2 应用场景 463 

    21.11.3 使用Redis实现购物车功能 463 

    21.12 Redis订阅发布系统 465 

    21.12.1 Redis 发布订阅 465 

    21.12.2 Redis 发布订阅操作 465 

    21.13 Redis的事务处理机制 466 

    21.14 小结 467 

    第22章 PHP的CURL功能扩展模块 468 

    22.1 CURL功能扩展模块介绍 468 

    22.2 PHP的CURL功能扩展模块基本用法 469 

    22.3 CURL相关的功能选项 470 

    22.4 通过CURL扩展获取页面信息 471 

    22.5 通过CURL扩展用POST方法发送数据 473 

    22.6 通过CURL扩展上传文件 474 

    22.7 通过CURL模拟登录并获取数据 476 

    22.8 小结 477 

    第23章 自定义PHP接口规范 478 

    23.1 应用程序编程接口(API) 478 

    23.1.1 什么是接口 478 

    23.1.2 了解实现接口的几种方法 479 

    23.1.3 接口的应用和优势 480 

    23.2 接口实现的基础 482 

    23.2.1 实现接口的访问流程 482 

    23.2.2 处理接口的返回值 483 

    23.2.3 在程序中访问接口 484 

    23.3 接口的安全控制规范 486 

    23.3.1 API安全控制原则 487 

    23.3.2 API安全控制简单实现步骤 487 

    23.4 API的设计原则和规范 491 

    23.4.1 什么是RESTful风格的API 491 

    23.4.2 RESTful API应遵循的原则 491 

    23.5 创建RESTful规范 WebAPI框架 495 

    23.5.1 程序结构设计 495 

    23.5.2 架构详解 496 

    23.5.3 WebAPI框架应用 502 

    23.5.4 客户端访问API 507 

    23.6 使用第三方接口服务实例 509 

    23.6.1 查找API 509 

    23.6.2 查看API文档说明 509 

    23.6.3 获取接口的key 510 

    23.6.4 使用 PHP 代码请求接口 510 

    23.7 小结 511 

    第24章 PHP依赖管理工具Composer 513 

    24.1 认识Composer 513 

    24.1.1 什么是Composer 513 

    24.1.2 Composer的代码库在哪里 514 

    24.1.3 类库的规范 515 

    24.2 Composer的安装 515 

    24.2.1 安装前的准备 515 

    24.2.2 安装步骤 515 

    24.2.3 测试安装环境 516 

    24.3 Composer常用文件 517 

    24.3.1 vendor目录 517 

    24.3.2 composer.json 文件 517 

    24.3.3 composer.lock 文件 518 

    24.4 Composer常用命令 519 

    24.4.1 Composer基本命令的使用 519 

    24.4.2 Composer命令的运行流程 520 

    24.5 Composer应用案例 521 

    24.5.1 搜索需要的库 521 

    24.5.2 应用前准备 522 

    24.5.3 应用类库 523 

    24.6 小结 525 

    第25章 MVC模式与PHP框架 526 

    25.1 MVC模式在Web中的应用 526 

    25.1.1 MVC模式的工作原理 526 

    25.1.2 MVC模式的优缺点 527 

    25.2 PHP开发框架 528 

    25.2.1 什么是框架 528 

    25.2.2 为什么要用框架 529 

    25.2.3 框架和MVC模式的关系 529 

    25.2.4 流行的PHP框架比较 530 

    25.3 划分模块和操作 532 

    25.3.1 为项目划分模块 532 

    25.3.2 为模块设置操作 532 

    25.4 小结 533 

    第26章 简洁优雅的Laravel开发框架 534 

    26.1 认识Laravel框架 534 

    26.1.1 什么是Laravel框架 534 

    26.1.2 Laravel框架的功能特点 534 

    26.1.3 Laravel框架的技术特点 535 

    26.1.4 Laravel框架应用的重要性 536 

    26.1.5 Laravel框架的发展历程 536 

    26.2 安装Laravel 538 

    26.2.1 安装前准备 538 

    26.2.2 安装Laravel 5.5 539 

    26.2.3 Laravel框架的目录结构 540 

    26.2.4 初始化Laravel框架安装的一些设置 542 

    26.2.5 Laravel框架的Artisan工具 544 

    26.3 Laravel框架的工作流程 544 

    26.3.1 基本的工作流程 545 

    26.3.2 客户端 546 

    26.3.3 主入口文件 546 

    26.3.4 URL路由 546 

    26.3.5 控制器层(C) 547 

    26.3.6 中间件 548 

    26.3.7 数据库操作层(M) 550 

    26.3.8 视图层(V) 553 

    26.3.9 请求和响应 556 

    26.4 Laravel框架的核心服务容器 561 

    26.4.1 IoC 容器 561 

    26.4.2 了解Laravel框架的核心 562 

    26.4.3 注册自己的服务到容器中 566 

    26.4.4 门面(Facades) 567 

    26.4.5 使用Composer为Laravel框架安装扩展插件包 569 

    26.5 基于Laravel框架的Web应用实例 571 

    26.5.1 用户登录模块 571 

    26.5.2 后台管理平台模块 573 

    26.5.3 文章模块 575 

    26.5.4 搭建前台模块 584 

    26.5.5 评论模块 586 

    26.6 基于Laravel 5.5的API应用实例 590 

    26.6.1 构建接口模块 590 

    26.6.2 封装返回的统一消息 591 

    26.6.3 为API增加版本 593 

    26.6.4 API token认证 593 

    26.6.5 编写文档和测试 596 

    26.7 小结 596 

    第27章 项目开发实战――博客系统 597 

    27.1 项目介绍 597 

    27.2 需求分析 597 

    27.2.1 系统目标 598 

    27.2.2 系统功能结构 598 

    27.2.3 权限介绍 599 

    27.3 操作流程图 599 

    27.3.1 博客前台操作流程 599 

    27.3.2 博客后台操作流程 600 

    27.4 原型图 600 

    27.4.1 什么是原型图 600 

    27.4.2 原型图的分类 600 

    27.4.3 项目部分原型页面展示 601 

    27.5 博客项目的模块介绍 604 

    27.5.1 前台模块 604 

    27.5.2 后台模块 604 

    27.5.3 前后台模块思维导图 605 

    27.6 数据库设计说明 606 

    27.6.1 概念结构设计 606 

    27.6.2 通过实体得到ER图 606 

    27.6.3 逻辑结构设计 607 

    27.6.4 数据库物理结构设计 608 

    27.7 程序设计说明 610 

    27.7.1 环境部署 611 

    27.7.2 权限设置 611 

    27.7.3 项目目录结构 611 

    27.7.4 项目模块结构 612 

    27.7.5 项目程序结构 612 

    27.7.6 模型说明 616 

    27.7.7 自定义类及安装的组件 617 

    27.8 项目安装和部署 617 

    27.8.1 搭建虚拟主机 617 

    27.8.2 导入数据库 618 

    27.8.3 项目应用 618 

    27.9 本章作业 619 

    27.9.1 任务一:修改网站配置模块 619 

    27.9.2 任务二:添加友情链接模块 622 

    27.10 小结 624 

    第28章 在线教育系统EDUPlayer 625 

    28.1 项目背景 625 

    28.2 需求分析 625 

    28.2.1 系统目标 625 

    28.2.2 前后端分离架构 626 

    28.2.3 系统功能结构 626 

    28.2.4 权限介绍 626 

    28.3 操作流程 627 

    28.3.1 前台操作流程 628 

    28.3.2 后台操作流程 628 

    28.4 原型图 629 

    28.5 系统模块介绍 631 

    28.5.1 前台模块 631 

    28.5.2 后台模块 632 

    28.5.3 前台模块思维导图 632 

    28.5.4 后台模块思维导图 632 

    28.6 数据库设计说明 633 

    28.6.1 概念结构设计 634 

    28.6.2 通过实体获取ER图 634 

    28.6.3 Laravel 框架的数据表迁移工具 635 

    28.6.4 数据表详解 635 

    28.7 项目安装 656 

    28.7.1 环境依赖 656 

    28.7.2 环境安装之 nginx 657 

    28.7.3 环境安装之 PHP 657 

    28.7.4 环境安装之MySQL 658 

    28.7.5 环境安装之 Redis 659 

    28.7.6 环境安装之Git 659 

    28.7.7 环境安装之 Composer 659 

    28.7.8 项目下载及配置 660 

    28.7.9 虚拟主机配置 661 

    28.7.10 开启定时任务 662 

    28.7.11 Redis队列实现 662 

    28.7.12 安装成功 663 

    28.8 目录结构 663 

    28.8.1 根目录 663 

    28.8.2 app 目录 664 

    28.9 依赖组件 665 

    28.10 二次开发注意事项 666 

    28.10.1 搜索参数和排序参数约束 666 

    28.10.2 关联加载约束 667 

    28.10.3 权限验证约束 668 

    28.10.4 开发新业务示例 668 

    28.11 小结 669 

    附录 671 

    附录A 编码规范 672 

    附录B PHP项目的安全和优化 683 

    附录C PHP 5.3~PHP 5.6中的新特性 695
  • 内容简介:
    本书是畅销书升级版,全书共分为28章,每章都是PHP独立知识点的总结,全部以现在*新的PHP7以上版本应用语法为主。内容涵盖了动态网站开发所需要的后端全栈技术、PHP的常用功能模块和实用技巧、MySQL和Redis两种数据库的设计与应用、PHP面向对象的程序设计思想、数据库抽象层PDO、Web开发的设计模式、自定义接口技术、全球应用排行**的Laravel5.5框架技术,并专门组建专业的开发团队为本书重新开发商业项目EUDPlayer作为案例等。每章都有大量的实用示例及详尽的注释,以加速读者的理解和学习,并为本书单独开发一个微信小程序(图书兄弟),提供和章节配套的精制视频教程、案例和课件下载、扩展文章、章节测试等多方位内容。对于PHP应用开发的新手而言,本书不失为一本好的入门教材,内容既实用又全面,所有实例都可以在开发中直接应用,并辅以配套的视频教程,使读者轻松掌握所学知识。另外,本书也适合有一定基础的网络开发人员和网络爱好者,以及大中专院校的师生阅读与参考。不仅可以作为PHP开发的学习用书,还可以作为从事Web开发的程序员的参考用书和必备手册。对于行家来说,本书也是一本难得的参考手册,读者必将从中获益。
  • 作者简介:
    IT兄弟连【易第优(北京)科技股份有限公司】副总裁,PHP中文网(php.cn)首席专家,拥有十多年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务,具有扎实的技术功底。国内资深技术讲师,腾讯网络人气名人讲师,累计授课长达一万课时以上,培养了近百名IT名师,培训数千名学员成功走向IT岗位。熟悉掌握当前应用的各种主流编程语言和数据库,其中,对Web系统开发深有研究,近年来致力于推广开源的PHP技术。
  • 目录:
    目录 

     

    第1章 LAMP网站构建 1 

    1.1 Web概述 1 

    1.1.1 Web应用的优势 2 

    1.1.2 Web 2.0时代的互联网 3 

    1.1.3 Web开发标准 4 

    1.1.4 认识脚本语言 5 

    1.2 动态网站开发所需的Web构件 5 

    1.2.1 客户端浏览器 6 

    1.2.2 超文本标记语言(HTML) 7 

    1.2.3 层叠样式表(CSS) 8 

    1.2.4 客户端脚本编程语言JavaScript 8 

    1.2.5 Web服务器 9 

    1.2.6 服务器端编程语言 10 

    1.2.7 数据库管理系统 10 

    1.3 几种主流的Web应用程序平台 11 

    1.3.1 Web应用程序开发平台对比分析 11 

    1.3.2 动态网站开发平台技术比较 12 

    1.4 HTTP协议与Web的关系 13 

    1.4.1 HTTP协议概述 13 

    1.4.2 HTTP协议结构 14 

    1.4.3 HTTP请求消息 15 

    1.4.4 HTTP响应消息 15 

    1.4.5 HTTPS是什么 16 

    1.4.6 URL概述 16 

    1.5 Web的工作原理 17 

    1.5.1 情景1:不带应用程序服务器和数据库的服务器 17 

    1.5.2 情景2:带应用程序服务器的Web服务器 18 

    1.5.3 情景3:浏览器访问服务器端的数据库 19 

    1.6 LAMP网站开发组合概述 19 

    1.6.1 Linux操作系统 20 

    1.6.2 Web服务器Apache 20 

    1.6.3 MySQL数据库管理系统 20 

    1.6.4 PHP后台脚本编程语言 21 

    1.6.5 LAMP的发展趋势 21 

    1.6.6 Web的未来发展 21 

    1.7 小结 22 

    第2章 PHP的应用与发展 23 

    2.1 PHP是什么 23 

    2.1.1 从认识PHP开始 23 

    2.1.2 PHP都能做什么 24 

    2.2 PHP的应用 26 

    2.2.1 开发网站和移动网站的应用 26 

    2.2.2 在企业内部信息化系统中的应用 27 

    2.2.3 在App接口开发方面的应用 27 

    2.2.4 对微信公众平台二次开发的应用 28 

    2.2.5 微信小程序开发应用 29 

    2.2.6 PHP在其他方面的应用 29 

    2.3 PHP的开发优势 29 

    2.3.1 简单易学 30 

    2.3.2 开发效率高 30 

    2.3.3 开发成本低 30 

    2.3.4 程序执行效率高 30 

    2.3.5 安全性良好 31 

    2.3.6 功能强大 31 

    2.3.7 可选择性多 31 

    2.4 PHP的发展 31 

    2.4.1 PHP的诞生 31 

    2.4.2 PHP的迭代过程 32 

    2.4.3 PHP的现在 33 

    2.4.4 PHP的未来 33 

    2.5 如何学习PHP 34 

    2.5.1 确定学习的目标 34 

    2.5.2 PHP学习线路图 34 

    2.5.3 坚持动手实验 36 

    2.5.4 Bug解决之道 36 

    2.5.5 看教学视频,让学习变得简单 37 

    2.5.6 优秀的Web程序员是怎样练成的 37 

    2.6 小结 39 

    第3章 从搭建你的PHP开发环境开始 40 

    3.1 几种常见的PHP环境安装方式 40 

    3.1.1 在Linux系统上以源代码包的方式安装环境 40 

    3.1.2 在Windows系统上安装Web工作环境 41 

    3.1.3 搭建学习型的PHP工作环境 41 

    3.2 环境安装对操作系统的选择 41 

    3.2.1 选择网站运营的操作系统 41 

    3.2.2 选择网站开发的操作系统 42 

    3.3 安装集成PHP开发环境 42 

    3.3.1 安装前准备 42 

    3.3.2 安装步骤 42 

    3.3.3 环境测试 43 

    3.4 集成环境中各服务器的配置 45 

    3.4.1 Apache配置 46 

    3.4.2 改变文档根目录www的位置 46 

    3.4.3 修改PHP的默认配置 47 

    3.4.4 phpMyAdmin的应用 47 

    3.4.5 修改MySQL默认的访问权限 48 

    3.5 小结 49 

    第4章 PHP的基本语法 50 

    4.1 第一个PHP脚本程序 50 

    4.2 PHP语言标记 52 

    4.2.1 将PHP代码嵌入HTML中的位置 53 

    4.2.2 解读开始和结束标记 53 

    4.3 指令分隔符“分号” 54 

    4.4 程序注释 54 

    4.5 在程序中使用空白的处理 56 

    4.6 变量 57 

    4.6.1 变量的声明 57 

    4.6.2 变量的命名 58 

    4.6.3 可变变量 59 

    4.6.4 变量的引用赋值 59 

    4.7 变量的类型 60 

    4.7.1 类型介绍 60 

    4.7.2 布尔型(boolean) 61 

    4.7.3 整型(integer) 62 

    4.7.4 浮点型(float或double) 63 

    4.7.5 字符串(string) 63 

    4.7.6 数组(array) 65 

    4.7.7 对象(object) 66 

    4.7.8 资源类型(resource) 66 

    4.7.9 NULL类型 67 

    4.7.10 伪类型介绍 67 

    4.8 数据类型之间相互转换 67 

    4.8.1 自动类型转换 68 

    4.8.2 强制类型转换 68 

    4.8.3 类型转换细节 69 

    4.8.4 变量类型的测试函数 69 

    4.9 常量 70 

    4.9.1 常量的定义和使用 70 

    4.9.2 常量和变量 71 

    4.9.3 PHP新版本可以使用表达式定义常量 72 

    4.9.4 define()和const的区别 72 

    4.9.5 系统中的预定义常量 72 

    4.9.6 PHP中的魔术常量 73 

    4.10 PHP中的运算符 74 

    4.10.1 算术运算符 74 

    4.10.2 字符串运算符 76 

    4.10.3 赋值运算符 76 

    4.10.4 比较运算符 77 

    4.10.5 逻辑运算符 79 

    4.10.6 位运算符 80 

    4.10.7 其他运算符 82 

    4.10.8 运算符的优先级 83 

    4.11 表达式 84 

    4.12 容易混淆的特殊值 84 

    4.13 小结 85 

    第5章 PHP的流程控制结构 86 

    5.1 分支结构 86 

    5.1.1 单一条件分支结构(if) 86 

    5.1.2 双向条件分支结构(else子句) 87 

    5.1.3 多向条件分支结构(elseif子句) 88 

    5.1.4 多向条件分支结构(switch语句) 89 

    5.1.5 巢状条件分支结构 91 

    5.1.6 条件分支结构实例应用(简单计算器) 92 

    5.2 循环结构 93 

    5.2.1 while语句 94 

    5.2.2 do…while循环 95 

    5.2.3 for语句 96 

    5.3 特殊的流程控制语句 99 

    5.3.1 break语句 99 

    5.3.2 continue语句 99 

    5.3.3 exit语句 100 

    5.4 PHP的新版特性――goto语句 100 

    5.5 小结 102 

    第6章 PHP的函数应用 103 

    6.1 函数的定义 103 

    6.2 自定义函数 104 

    6.2.1 函数的声明 104 

    6.2.2 函数的调用 105 

    6.2.3 函数的参数 106 

    6.2.4 函数的返回值 107 

    6.2.5 标量类型声明 109 

    6.3 函数的工作原理和结构化编程 111 

    6.4 PHP变量的范围 111 

    6.4.1 局部变量 111 

    6.4.2 全局变量 112 

    6.4.3 静态变量 113 

    6.5 声明及应用各种形式的PHP函数 114 

    6.5.1 常规参数的函数 115 

    6.5.2 伪类型参数的函数 115 

    6.5.3 引用参数的函数 115 

    6.5.4 默认参数的函数 116 

    6.5.5 可变个数参数的函数 118 

    6.5.6 回调函数 119 

    6.6 递归函数 122 

    6.7 使用自定义函数库 123 

    6.8 PHP匿名函数和闭包 124 

    6.9 小结 125 

    第7章 PHP中的数组与数据结构 126 

    7.1 数组的分类 126 

    7.2 数组的定义 127 

    7.2.1 以直接赋值的方式声明数组 128 

    7.2.2 使用array()语言结构新建数组 129 

    7.2.3 数组简写语法 130 

    7.2.4 多维数组的声明 130 

    7.3 数组的遍历 132 

    7.3.1 使用for语句循环遍历数组 132 

    7.3.2 联合使用list( )、each( )和while循环遍历数组 134 

    7.3.3 使用foreach语句遍历数组 135 

    7.3.4 使用数组的内部指针控制函数遍历数组 138 

    7.4 预定义数组 139 

    7.4.1 服务器变量:$_SERVER 140 

    7.4.2 环境变量:$_ENV 140 

    7.4.3 URL GET变量:$_GET 141 

    7.4.4 HTTP POST变量:$_POST 141 

    7.4.5 request变量:$_REQUEST 142 

    7.4.6 HTTP文件上传变量:$_FILES 142 

    7.4.7 HTTP Cookies:$_COOKIE 142 

    7.4.8 Session变量:$_SESSION 143 

    7.4.9 Global变量:$GLOBALS 143 

    7.5 数组的相关处理函数 143 

    7.5.1 数组的键/值操作函数 143 

    7.5.2 统计数组元素的个数和唯一性 146 

    7.5.3 使用回调函数处理数组的函数 147 

    7.5.4 数组的排序函数 150 

    7.5.5 拆分、合并、分解和接合数组 153 

    7.5.6 数组与数据结构 155 

    7.5.7 其他有用的数组处理函数 157 

    7.6 操作PHP数组需要注意的一些细节 158 

    7.6.1 数组运算符号 158 

    7.6.2 删除数组中的元素 159 

    7.6.3 关于数组下标的注意事项 159 

    7.7 小结 160 

    第8章 PHP面向对象的程序设计 161 

    8.1 面向对象概述 161 

    8.1.1 类和对象之间的关系 161 

    8.1.2 面向对象的程序设计 162 

    8.2 如何抽象一个类 163 

    8.2.1 类的声明 163 

    8.2.2 成员属性 164 

    8.2.3 成员方法 164 

    8.3 通过类实例化对象 166 

    8.3.1 实例化对象 166 

    8.3.2 对象类型在内存中的分配 167 

    8.3.3 对象中成员的访问 168 

    8.3.4 特殊的对象引用“$this” 169 

    8.3.5 构造方法与析构方法 171 

    8.4 封装性 173 

    8.4.1 设置私有成员 174 

    8.4.2 私有成员的访问 175 

    8.4.3 _ _set()、_ _get()、_ _isset()和_ _unset() 4个方法 176 

    8.5 继承性 180 

    8.5.1 类继承的应用 181 

    8.5.2 访问类型控制 182 

    8.5.3 子类中重载父类的方法 184 

    8.6 常见的关键字和魔术方法 186 

    8.6.1 final关键字的应用 186 

    8.6.2 static关键字的使用 187 

    8.6.3 单态设计模式 188 

    8.6.4 const关键字 189 

    8.6.5 instanceof关键字 189 

    8.6.6 克隆对象 190 

    8.6.7 类中通用的方法_ _toString() 191 

    8.6.8 PHP 7新加入的方法_ _ debugInfo() 191 

    8.6.9 _ _call()方法的应用 192 

    8.6.10 自动加载类 194 

    8.6.11 对象串行化 194 

    8.7 抽象类与接口 197 

    8.7.1 抽象类 197 

    8.7.2 接口技术 198 

    8.8 多态性的应用 200 

    8.9 PHP 5.4的Trait特性 201 

    8.9.1 Trait的声明 201 

    8.9.2 Trait的基本使用 202 

    8.10 PHP 7的匿名类 204 

    8.10.1 匿名类的声明 204 

    8.10.2 匿名类的应用 205 

    8.11 PHP 5.3新增加的命名空间 206 

    8.11.1 命名空间的基本应用 206 

    8.11.2 命名空间的子空间和公共空间 208 

    8.11.3 命名空间中的名称和术语 209 

    8.11.4 别名和导入 209 

    8.12 面向对象版图形计算器 211 

    8.12.1 需求分析 211 

    8.12.2 功能设计及实现 212 

    8.12.3 类的组织架构 216 

    8.13 小结 217 

    第9章 字符串处理 219 

    9.1 字符串的处理介绍 219 

    9.1.1 字符串的处理方式 219 

    9.1.2 字符串类型的特点 219 

    9.1.3 双引号中的变量解析总结 220 

    9.2 常用的字符串输出函数 221 

    9.3 常用的字符串格式化函数 223 

    9.3.1 去除空格和字符串填补函数 224 

    9.3.2 字符串大小写的转换 225 

    9.3.3 和HTML标签相关的字符串格式化 225 

    9.3.4 其他字符串格式化函数 228 

    9.4 字符串比较函数 229 

    9.4.1 按字节顺序进行字符串比较 230 

    9.4.2 按自然排序进行字符串比较 230 

    9.5 小结 231 

    第10章 正则表达式 232 

    10.1 正则表达式简介 232 

    10.2 正则表达式的语法规则 233 

    10.2.1 定界符 233 

    10.2.2 原子 234 

    10.2.3 元字符 235 

    10.2.4 模式修正符 238 

    10.3 与Perl兼容的正则表达式函数 238 

    10.3.1 字符串的匹配与查找 239 

    10.3.2 字符串的替换 242 

    10.3.3 字符串的分割和连接 246 

    10.4 文章发布操作示例 248 

    10.5 小结 252 

    第11章 PHP的错误和异常处理 253 

    11.1 错误处理 253 

    11.1.1 错误报告级别 253 

    11.1.2 调整错误报告级别 254 

    11.1.3 使用trigger_error()函数代替die()函数 256 

    11.1.4 自定义错误处理 256 

    11.1.5 写错误日志 257 

    11.2 异常处理 259 

    11.2.1 异常处理实现 260 

    11.2.2 扩展PHP内置的异常处理类 260 

    11.2.3 捕获多个异常 262 

    11.2.4 PHP异常处理新特性 263 

    11.3 小结 264 

    第12章 PHP的日期和时间 265 

    12.1 UNIX时间戳 265 

    12.1.1 将日期和时间转变成UNIX时间戳 265 

    12.1.2 日期的计算 266 

    12.2 在PHP中获取日期和时间 267 

    12.2.1 调用getdate()函数取得日期和时间信息 267 

    12.2.2 日期和时间格式化输出 267 

    12.3 修改PHP的默认时区 269 

    12.4 使用微秒计算PHP脚本执行时间 269 

    12.5 日历类 270 

    12.6 小结 273 

    第13章 文件系统处理 275 

    13.1 文件系统概述 275 

    13.1.1 文件类型 275 

    13.1.2 文件的属性 276 

    13.2 目录的基本操作 278 

    13.2.1 解析目录路径 279 

    13.2.2 遍历目录 280 

    13.2.3 统计目录大小 281 

    13.2.4 建立和删除目录 282 

    13.2.5 复制目录 282 

    13.3 文件的基本操作 283 

    13.3.1 文件的打开与关闭 283 

    13.3.2 写入文件 285 

    13.3.3 读取文件内容 285 

    13.3.4 访问远程文件 287 

    13.3.5 移动文件指针 288 

    13.3.6 文件的锁定机制 289 

    13.3.7 文件的一些基本操作函数 291 

    13.4 文件的上传与下载 292 

    13.4.1 文件上传 292 

    13.4.2 处理多个文件上传 295 

    13.4.3 文件下载 296 

    13.5 设计经典的文件上传类 297 

    13.5.1 需求分析 297 

    13.5.2 程序设计 297 

    13.5.3 文件上传类代码实现 298 

    13.5.4 文件上传类的应用过程 301 

    13.6 小结 303 

    第14章 PHP动态图像处理 304 

    14.1 PHP中GD库的使用 304 

    14.1.1 画布管理 305 

    14.1.2 设置颜色 306 

    14.1.3 生成图像 306 

    14.1.4 绘制图像 307 

    14.1.5 在图像中绘制文字 309 

    14.2 设计经典的验证码类 311 

    14.2.1 设计验证码类 311 

    14.2.2 应用验证码类的实例对象 313 

    14.2.3 表单中应用验证码 313 

    14.2.4 实例演示 314 

    14.3 PHP图片处理 314 

    14.3.1 图片背景管理 314 

    14.3.2 图片缩放 316 

    14.3.3 图片裁剪 317 

    14.3.4 添加图片水印 318 

    14.3.5 图片旋转和翻转 319 

    14.4 设计经典的图像处理类 321 

    14.4.1 需求分析 322 

    14.4.2 程序设计 322 

    14.4.3 图像处理类代码实现 323 

    14.4.4 图像处理类的应用过程 327 

    14.5 小结 328 

    第15章 MySQL数据库概述 329 

    15.1 数据库的应用 329 

    15.1.1 数据库在Web开发中的重要地位 329 

    15.1.2 为什么PHP会选择MySQL作为自己的黄金搭档 330 

    15.1.3 PHP和MySQL的合作方式 330 

    15.1.4 结构化查询语言SQL 331 

    15.2 MySQL数据库的常见操作 331 

    15.2.1 MySQL数据库的连接与关闭 331 

    15.2.2 创建新用户并授权 332 

    15.2.3 创建数据库 333 

    15.2.4 创建数据表 333 

    15.2.5 数据表内容的简单管理 334 

    15.3 小结 335 

    第16章 MySQL数据表的设计 336 

    16.1 数据表(Table) 336 

    16.2 数据值和列类型 337 

    16.2.1 数值类的数据列类型 337 

    16.2.2 字符串类的数据列类型 338 

    16.2.3 日期和时间类的数据列类型 339 

    16.2.4 NULL值 339 

    16.2.5 类型转换 339 

    16.3 数据字段属性 340 

    16.4 数据表对象管理 340 

    16.4.1 创建表(CREATE TABLE) 340 

    16.4.2 修改表(ALTER TABLE) 342 

    16.4.3 删除表(DROP TABLE) 342 

    16.5 数据表的类型及存储位置 343 

    16.5.1 MyISAM数据表 343 

    16.5.2 InnoDB数据表 343 

    16.5.3 选择InnoDB还是MyISAM数据表类型 343 

    16.5.4 数据表的存储位置 344 

    16.6 数据表的默认字符集 344 

    16.6.1 字符集 344 

    16.6.2 字符集支持原理 345 

    16.6.3 创建数据对象时修改字符集 345 

    16.7 创建索引 346 

    16.7.1 主键索引(PRIMARY KEY) 346 

    16.7.2 唯一索引(UNIQUE) 347 

    16.7.3 常规索引(INDEX) 347 

    16.7.4 全文索引(FULLTEXT) 348 

    16.8 数据库的设计技巧 348 

    16.8.1 数据库的设计要求 348 

    16.8.2 命名的技巧 348 

    16.8.3 数据库具体设计工作中的技巧 349 

    16.9 小结 349 

    第17章 SQL语句设计 350 

    17.1 操作数据表中的数据记录(DML) 350 

    17.1.1 使用INSERT语句向数据表中添加数据 350 

    17.1.2 使用UPDATE语句更新数据表中已存在的数据 351 

    17.1.3 使用DELETE语句删除数据表中不需要的数据记录 352 

    17.2 通过DQL命令查询数据表中的数据 352 

    17.2.1 选择特定的字段 353 

    17.2.2 使用AS子句为字段取别名 353 

    17.2.3 DISTINCT关键字的使用 353 

    17.2.4 在SELECT语句中使用表达式的列 354 

    17.2.5 使用WHERE子句按条件检索 355 

    17.2.6 根据空值(NULL)确定检索条件 356 

    17.2.7 使用BETWEEN AND进行范围比较查询 356 

    17.2.8 使用IN进行范围比较查询 356 

    17.2.9 使用LIKE进行模糊查询 356 

    17.2.10 多表查询(连接查询) 357 

    17.2.11 嵌套查询(子查询) 359 

    17.2.12 使用ORDER BY对查询结果排序 359 

    17.2.13 使用LIMIT限定结果行数 360 

    17.2.14 使用统计函数 360 

    17.2.15 使用GROUP BY对查询结果分组 361 

    17.3 查询优化 362 

    17.4 小结 363 

    第18章 数据库抽象层PDO 364 

    18.1 PHP访问MySQL数据库服务器的流程 364 

    18.2 PDO所支持的数据库 365 

    18.3 PDO的安装 366 

    18.4 创建PDO对象 367 

    18.4.1 以多种方式调用构造方法 368 

    18.4.2 PDO对象中的成员方法 370 

    18.5 使用PDO对象 370 

    18.5.1 调整PDO的行为属性 370 

    18.5.2 PDO处理PHP程序和数据库之间的数据类型转换 371 

    18.5.3 PDO的错误处理模式 371 

    18.5.4 使用PDO执行SQL语句 372 

    18.6 PDO对预处理语句的支持 373 

    18.6.1 了解PDOStatement对象 374 

    18.6.2 准备语句 375 

    18.6.3 绑定参数 375 

    18.6.4 执行准备好的查询 376 

    18.6.5 获取数据 377 

    18.6.6 大数据对象的存取 380 

    18.7 PDO的事务处理 381 

    18.7.1 MySQL的事务处理 381 

    18.7.2 构建事务处理的应用程序 382 

    18.8 设计完美分页类 383 

    18.8.1 需求分析 383 

    18.8.2 程序设计 383 

    18.8.3 完美分页类的代码实现 385 

    18.8.4 完美分页类的应用过程 388 

    18.9 管理表books实例 390 

    18.9.1 需求分析 390 

    18.9.2 程序设计 391 

    18.10 小结 397 

    本章必须掌握的知识点 397 

    本章需要了解的内容 398 

    本章需要拓展的内容 398 

    第19章 MemCache管理与应用 399 

    19.1 MemCache概述 399 

    19.1.1 初识MemCache 399 

    19.1.2 MemCache在Web中的应用 400 

    19.2 memcached的安装及管理 401 

    19.2.1 Linux下安装MemCache软件 401 

    19.2.2 Windows下安装MemCache软件 402 

    19.2.3 memcached服务器的管理 403 

    19.3 使用Telnet作为memcached的客户端管理 403 

    19.3.1 连接memcached服务器 403 

    19.3.2 基本的memcached客户端命令 403 

    19.3.3 查看当前memcached服务器的运行状态信息 404 

    19.3.4 数据管理指令 404 

    19.4 PHP的memcached管理接口 405 

    19.4.1 安装PHP中的MemCache应用程序扩展接口 405 

    19.4.2 MemCache应用程序扩展接口 407 

    19.4.3 MemCache的实例应用 411 

    19.5 memcached服务器的安全防护 412 

    19.6 小结 412 

    第20章 会话控制 414 

    20.1 为什么要使用会话控制 414 

    20.2 会话跟踪的方式 415 

    20.3 Cookie的应用 415 

    20.3.1 Cookie概述 415 

    20.3.2 向客户端计算机中设置Cookie 416 

    20.3.3 在PHP脚本中读取Cookie的资料内容 417 

    20.3.4 数组形态的Cookie应用 418 

    20.3.5 删除Cookie 418 

    20.3.6 基于Cookie的用户登录模块 419 

    20.4 Session的应用 420 

    20.4.1 Session概述 420 

    20.4.2 配置Session 421 

    20.4.3 Session的声明与使用 422 

    20.4.4 注册一个会话变量和读取Session 422 

    20.4.5 注销变量与销毁Session 423 

    20.4.6 Session的自动回收机制 424 

    20.4.7 传递Session ID 425 

    20.5 一个简单的邮件系统实例 427 

    20.5.1 为邮件系统准备数据 427 

    20.5.2 编码实现邮件系统 428 

    20.5.3 邮件系统执行说明 430 

    20.6 自定义Session处理方式 431 

    20.6.1 自定义Session的存储机制 431 

    20.6.2 使用数据库处理Session信息 433 

    20.6.3 使用memcached处理Session信息 436 

    20.7 小结 438 

    第21章 Redis的管理与应用 439 

    21.1 从认识Redis开始 439 

    21.1.1 Redis与其他数据库和软件的对比 439 

    21.1.2 Redis的特点 440 

    21.1.3 使用Redis的理由 440 

    21.2 Redis环境安装及管理 441 

    21.2.1 安装Redis 441 

    21.2.2 启动Redis服务 442 

    21.2.3 Redis服务的性能测试 442 

    21.2.4 Redis服务的配置管理 443 

    21.3 Redis客户端管理 444 

    21.3.1 命令行客户端操作 445 

    21.3.2 安装PHP的Redis扩展 445 

    21.4 Redis服务器的基本操作 446 

    21.5 Redis的数据类型 447 

    21.6 PHP操作Redis的通用方法 448 

    21.7 Redis的字符串(String)类型 449 

    21.7.1 相关的命令操作 449 

    21.7.2 应用场景 450 

    21.7.3 使用Redis实现页面缓存 450 

    21.8 Redis的列表(List)类型 451 

    21.8.1 相关的命令操作 452 

    21.8.2 应用场景 453 

    21.8.3 “PHP+Redis”实现消息队列 453 

    21.9 Redis的集合(Set)类型 454 

    21.9.1 相关的命令操作 454 

    21.9.2 应用场景 456 

    21.9.3 “PHP+Redis”实现共同好友功能 456 

    21.10 Redis的Sorted Set有序集合类型 458 

    21.10.1 相关的命令操作 458 

    21.10.2 应用场景 459 

    21.10.3 “PHP+Redis”实现排行榜功能 460 

    21.11 Redis的哈希(hash)表类型 461 

    21.11.1 相关的命令操作 461 

    21.11.2 应用场景 463 

    21.11.3 使用Redis实现购物车功能 463 

    21.12 Redis订阅发布系统 465 

    21.12.1 Redis 发布订阅 465 

    21.12.2 Redis 发布订阅操作 465 

    21.13 Redis的事务处理机制 466 

    21.14 小结 467 

    第22章 PHP的CURL功能扩展模块 468 

    22.1 CURL功能扩展模块介绍 468 

    22.2 PHP的CURL功能扩展模块基本用法 469 

    22.3 CURL相关的功能选项 470 

    22.4 通过CURL扩展获取页面信息 471 

    22.5 通过CURL扩展用POST方法发送数据 473 

    22.6 通过CURL扩展上传文件 474 

    22.7 通过CURL模拟登录并获取数据 476 

    22.8 小结 477 

    第23章 自定义PHP接口规范 478 

    23.1 应用程序编程接口(API) 478 

    23.1.1 什么是接口 478 

    23.1.2 了解实现接口的几种方法 479 

    23.1.3 接口的应用和优势 480 

    23.2 接口实现的基础 482 

    23.2.1 实现接口的访问流程 482 

    23.2.2 处理接口的返回值 483 

    23.2.3 在程序中访问接口 484 

    23.3 接口的安全控制规范 486 

    23.3.1 API安全控制原则 487 

    23.3.2 API安全控制简单实现步骤 487 

    23.4 API的设计原则和规范 491 

    23.4.1 什么是RESTful风格的API 491 

    23.4.2 RESTful API应遵循的原则 491 

    23.5 创建RESTful规范 WebAPI框架 495 

    23.5.1 程序结构设计 495 

    23.5.2 架构详解 496 

    23.5.3 WebAPI框架应用 502 

    23.5.4 客户端访问API 507 

    23.6 使用第三方接口服务实例 509 

    23.6.1 查找API 509 

    23.6.2 查看API文档说明 509 

    23.6.3 获取接口的key 510 

    23.6.4 使用 PHP 代码请求接口 510 

    23.7 小结 511 

    第24章 PHP依赖管理工具Composer 513 

    24.1 认识Composer 513 

    24.1.1 什么是Composer 513 

    24.1.2 Composer的代码库在哪里 514 

    24.1.3 类库的规范 515 

    24.2 Composer的安装 515 

    24.2.1 安装前的准备 515 

    24.2.2 安装步骤 515 

    24.2.3 测试安装环境 516 

    24.3 Composer常用文件 517 

    24.3.1 vendor目录 517 

    24.3.2 composer.json 文件 517 

    24.3.3 composer.lock 文件 518 

    24.4 Composer常用命令 519 

    24.4.1 Composer基本命令的使用 519 

    24.4.2 Composer命令的运行流程 520 

    24.5 Composer应用案例 521 

    24.5.1 搜索需要的库 521 

    24.5.2 应用前准备 522 

    24.5.3 应用类库 523 

    24.6 小结 525 

    第25章 MVC模式与PHP框架 526 

    25.1 MVC模式在Web中的应用 526 

    25.1.1 MVC模式的工作原理 526 

    25.1.2 MVC模式的优缺点 527 

    25.2 PHP开发框架 528 

    25.2.1 什么是框架 528 

    25.2.2 为什么要用框架 529 

    25.2.3 框架和MVC模式的关系 529 

    25.2.4 流行的PHP框架比较 530 

    25.3 划分模块和操作 532 

    25.3.1 为项目划分模块 532 

    25.3.2 为模块设置操作 532 

    25.4 小结 533 

    第26章 简洁优雅的Laravel开发框架 534 

    26.1 认识Laravel框架 534 

    26.1.1 什么是Laravel框架 534 

    26.1.2 Laravel框架的功能特点 534 

    26.1.3 Laravel框架的技术特点 535 

    26.1.4 Laravel框架应用的重要性 536 

    26.1.5 Laravel框架的发展历程 536 

    26.2 安装Laravel 538 

    26.2.1 安装前准备 538 

    26.2.2 安装Laravel 5.5 539 

    26.2.3 Laravel框架的目录结构 540 

    26.2.4 初始化Laravel框架安装的一些设置 542 

    26.2.5 Laravel框架的Artisan工具 544 

    26.3 Laravel框架的工作流程 544 

    26.3.1 基本的工作流程 545 

    26.3.2 客户端 546 

    26.3.3 主入口文件 546 

    26.3.4 URL路由 546 

    26.3.5 控制器层(C) 547 

    26.3.6 中间件 548 

    26.3.7 数据库操作层(M) 550 

    26.3.8 视图层(V) 553 

    26.3.9 请求和响应 556 

    26.4 Laravel框架的核心服务容器 561 

    26.4.1 IoC 容器 561 

    26.4.2 了解Laravel框架的核心 562 

    26.4.3 注册自己的服务到容器中 566 

    26.4.4 门面(Facades) 567 

    26.4.5 使用Composer为Laravel框架安装扩展插件包 569 

    26.5 基于Laravel框架的Web应用实例 571 

    26.5.1 用户登录模块 571 

    26.5.2 后台管理平台模块 573 

    26.5.3 文章模块 575 

    26.5.4 搭建前台模块 584 

    26.5.5 评论模块 586 

    26.6 基于Laravel 5.5的API应用实例 590 

    26.6.1 构建接口模块 590 

    26.6.2 封装返回的统一消息 591 

    26.6.3 为API增加版本 593 

    26.6.4 API token认证 593 

    26.6.5 编写文档和测试 596 

    26.7 小结 596 

    第27章 项目开发实战――博客系统 597 

    27.1 项目介绍 597 

    27.2 需求分析 597 

    27.2.1 系统目标 598 

    27.2.2 系统功能结构 598 

    27.2.3 权限介绍 599 

    27.3 操作流程图 599 

    27.3.1 博客前台操作流程 599 

    27.3.2 博客后台操作流程 600 

    27.4 原型图 600 

    27.4.1 什么是原型图 600 

    27.4.2 原型图的分类 600 

    27.4.3 项目部分原型页面展示 601 

    27.5 博客项目的模块介绍 604 

    27.5.1 前台模块 604 

    27.5.2 后台模块 604 

    27.5.3 前后台模块思维导图 605 

    27.6 数据库设计说明 606 

    27.6.1 概念结构设计 606 

    27.6.2 通过实体得到ER图 606 

    27.6.3 逻辑结构设计 607 

    27.6.4 数据库物理结构设计 608 

    27.7 程序设计说明 610 

    27.7.1 环境部署 611 

    27.7.2 权限设置 611 

    27.7.3 项目目录结构 611 

    27.7.4 项目模块结构 612 

    27.7.5 项目程序结构 612 

    27.7.6 模型说明 616 

    27.7.7 自定义类及安装的组件 617 

    27.8 项目安装和部署 617 

    27.8.1 搭建虚拟主机 617 

    27.8.2 导入数据库 618 

    27.8.3 项目应用 618 

    27.9 本章作业 619 

    27.9.1 任务一:修改网站配置模块 619 

    27.9.2 任务二:添加友情链接模块 622 

    27.10 小结 624 

    第28章 在线教育系统EDUPlayer 625 

    28.1 项目背景 625 

    28.2 需求分析 625 

    28.2.1 系统目标 625 

    28.2.2 前后端分离架构 626 

    28.2.3 系统功能结构 626 

    28.2.4 权限介绍 626 

    28.3 操作流程 627 

    28.3.1 前台操作流程 628 

    28.3.2 后台操作流程 628 

    28.4 原型图 629 

    28.5 系统模块介绍 631 

    28.5.1 前台模块 631 

    28.5.2 后台模块 632 

    28.5.3 前台模块思维导图 632 

    28.5.4 后台模块思维导图 632 

    28.6 数据库设计说明 633 

    28.6.1 概念结构设计 634 

    28.6.2 通过实体获取ER图 634 

    28.6.3 Laravel 框架的数据表迁移工具 635 

    28.6.4 数据表详解 635 

    28.7 项目安装 656 

    28.7.1 环境依赖 656 

    28.7.2 环境安装之 nginx 657 

    28.7.3 环境安装之 PHP 657 

    28.7.4 环境安装之MySQL 658 

    28.7.5 环境安装之 Redis 659 

    28.7.6 环境安装之Git 659 

    28.7.7 环境安装之 Composer 659 

    28.7.8 项目下载及配置 660 

    28.7.9 虚拟主机配置 661 

    28.7.10 开启定时任务 662 

    28.7.11 Redis队列实现 662 

    28.7.12 安装成功 663 

    28.8 目录结构 663 

    28.8.1 根目录 663 

    28.8.2 app 目录 664 

    28.9 依赖组件 665 

    28.10 二次开发注意事项 666 

    28.10.1 搜索参数和排序参数约束 666 

    28.10.2 关联加载约束 667 

    28.10.3 权限验证约束 668 

    28.10.4 开发新业务示例 668 

    28.11 小结 669 

    附录 671 

    附录A 编码规范 672 

    附录B PHP项目的安全和优化 683 

    附录C PHP 5.3~PHP 5.6中的新特性 695
查看详情
您可能感兴趣 / 更多
细说PHP(第4版)
细说PHP:第2版
高洛峰 著;LAMP兄弟连 编
细说PHP(第4版)
细说PHP
高洛峰 著