本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | PHP与MySQL程序设计 第5版 |
作者: | (美)弗兰克·M.克罗曼 |
定价: | 139.0 |
出版社: | 人民邮电出版社 |
出版日期: | 2020-08-01 |
ISBN: | 9787115543592 |
印次: | 1 |
版次: | 1 |
装帧: | |
开本: | 16开 |
内容简介 | |
本书是全面讲述PHP与MySQL的经典之作,不但详细介绍了这两种技术及其相关工具的核心特,还讲解了如何地结合这两种技术构建出健壮的数据驱动的应用程序。书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际工作中所面临的各种挑战。第5版涵盖了PHP 7的新增功能以及新版MySQL的新特。 本书内容全面、深入,适合各层次的PHP和MySQL开发人员阅读,既可用作优秀的学习教程,也可以用作参考手册。 |
目录 | |
第1章 PHP 简介 1.1 PHP 核心特 1.1.1 实用 1.1.2 能力 1.1.3 可能 1.1.4 价格 1.2 PHP 现状 1.3 PHP 生态系统 1.3.1 Drupal 1.3.2 WordPress 1.3.3 Magento 1.3.4 MediaWiki 1.3.5 SugarCRM 1.3.6 Zend Framework 1.4 小结 第2章 环境配置 2.1 选择主机环境 2.1.1 虚拟服务器 2.1.2 台即服务(PaaS) 2.2 安装先决条件 2.2.1 Windows 2.2.2 macOS 2.2.3 Linux 2.2.4 从源代码安装 2.3 配置PHP 2.3.1 Apache httpd.conf 和.htaccess文件 2.3.2 在运行脚本中配置 2.3.3 PHP 的配置指令 2.4 选择编辑器 2.4.1 PHPStorm 2.4.2 Atom 2.4.3 Sublime Text 2.4.4 Visual Studio Code 2.4.5 PDT(PHP 开发工具) 2.4.6 Zend Studio 2.5 小结 第3章 PHP 基础 3.1 在网页中嵌入PHP 代码 3.1.1 默认语法 3.1.2 短标签 3.1.3 嵌入多个代码块 3.2 在代码中添加注释 3.2.1 单行C++语法 3.2.2 多行注释 3.3 向客户端输出数据 3.3.1 使用printf()语行复杂输出 3.3.2 sprintf()语句 3.4 PHP 数据类型 3.4.1 标量数据类型 3.4.2 复合数据类型 3.4.3 数据类型转换 3.4.4 数据类型的自动转换 3.4.5 类型标识符函数 3.5 使用变量处理动态数据 3.5.1 变量声明 3.5.2 PHP 全局变量 3.6 使用常量管理固定数据 3.7 使用表达式 3.7.1 操作数:表达式的输入 3.7.2 操作符:表达式的行为 3.8 字符串r/> 3.8.1 双引号字符串 3.8.2 转义序列 3.8.3 单引号字符串 3.8.4 花括号 3.8.5 heredoc 3.8.6 nowdoc 3.9 控制结构 3.9.1 条件语句 3.9.2 使用循环语行重复迭代 3.9.3 文件包含语句 3.10 小结 第4章 函数 4.1 调用函数 4.2 创建函数 4.2.1 返回多个值 4.2.2 按值传递参数 4.2.3 参数默认值 4.2.4 使用类型声明 4.2.5 递归函数 4.2.6 匿名函数 4.2.7 函数库 4.3 小结 第5章 数组 5.1 什么是数组 5.2 创建数组 5.2.1 使用array()创建数组 5.2.2 使用list()提取数组 5.2.3 用预定义范围的值填充数组 5.2.4 检测数组 5.3 输出数组 5.4 添加和删除数组元素 5.4.1 在数组开头添加一个值 5.4.2 在数组末尾添加一个值 5.4.3 在数组开头删除一个值 5.4.4 在数组末尾删除一个值 5.5 数组元素定位 5.5.1 搜索数组 5.5.2 提取数组的键 5.5.3 提取数组的值 5.6 提取列 5.7 数组遍历 5.7.1 提取数组当前的键 5.7.2 提取数组当前的值 5.7.3 移动数组指针 5.7.4 向函数传递数组值 5.8 确定数组大小和 5.8.1 确定函数大小 5.8.2 计算数组值的频率 5.8.3 确定数组中的值 5.9 数组排序 5.9.1 翻转数组元素顺序 5.9.2 键与值的互换 5.9.3 数组排序 5.10 数组的合并、切片、剪接和拆分 5.10.1 合并数组 5.10.2 递归追加数组 5.10.3 组合两个数组 5.10.4 数组的切片 5.10.5 数组的剪接 5.10.6 计算数组交集 5.10.7 计算关联数组的交集 5.10.8 计算数组的差 5.10.9 计算关联数组的差 5.11 其他有用的数组函数 5.11.1 返回一组随机的键 5.11.2 重排数组元素 5.12 小结 第6章 面向对象的PHP 6.1 OOP 的优点 6.1.1 封装 6.1.2 继承 6.1.3 多态 6.2 OOP 核心概念 6.2.1 类 6.2.2 对象 6.2.3 属 6.2.4 常量 6.2.5 方法 6.3 构造函数与析构函数 6.3.1 构造函数 6.3.2 析构函数 6.4 静态类成员 6.5 instanceof 关键字 6.6 辅助函数 6.6.1 确定一个类是否存在 6.6.2 确定对象上下文 6.6.3 获取类的方法 6.6.4 获取类的属 6.6.5 获取已声明的类 6.6.6 获取对象属 6.6.7 确定对象的父类 6.6.8 确定对象类型 6.6.9 确定对象子类类型 6.6.10 确定方法是否存在 6.7 自动加载对象 6.8 trait 6.9 小结 第7章 高级OOP 特 7.1 PHP 不支持的高级OOP 特 7.2 对象克隆 7.2.1 克隆示例 7.2.2 __clone()方法 7.3 继承 7.3.1 类的继承 7.3.2 继承与构造函数 7.3.3 继承与延迟静态绑定 7.4 接口 7.4.1 实现单个接口 7.4.2 实现多个接口 7.4.3 确定接口是否存在 7.5 抽象类 7.6 命名空间 7.7 小结 第8章 错误与异常处理 8.1 所有问题都是因你而生 8.2 配置PHP 错误报告 8.2.1 设置错误报告等级 8.2.2 在浏览器上显示错误信息 8.2.3 错误日志 8.2.4 创建和记录自定义消息 8.3 异常处理 8.4 PHP 异常处理功能 8.4.1 扩展基础异常类 8.4.2 默认构造函数 8.4.3 引入finally 代码块 8.4.4 扩展异常类 8.4.5 捕获多个异常 8.4.6 标准PHP 类库中的异常 8.5 PHP 7 中的错误处理 8.6 小结 第9章 字符串与正则表达式 9.1 正则表达式 9.2 其他字符串专用函数 9.2.1 确定字符串的长度 9.2.2 比较两个字符串 9.2.3 处理字符串大小写 9.2.4 字符串与HTML 的转换 9.3 正则表达式函数的替代方式 9.3.1 根据预定义字符对字符行分词 9.3.2 根据预定义分隔符拆分字符串 9.3.3 将数组转换为字符串 9.3.4 解析复杂字符串 9.3.5 找出字符串最后出现的位置 9.3.6 将所有字符串实例替换为另一个字符串 9.3.7 提取部分字符串 9.3.8 根据预定义偏移量返回部分字符串 9.3.9 确定字符串出现的频率 9.3.10 将字符串的一部分替换为另一个字符串 9.3.11 填充和剥离字符串 9.3.12 字符与单词计数 9.4 小结 第10章 处理文件与操作系统 10.1 了解文件与目录 10.1.1 目录分隔符 10.1.2 解析目录路径 10.1.3 计算文件、目录和磁盘大小 10.1.4 确定访问时间和修改时间 10.2 处理文件 10.2.1 资源的概念 10.2.2 换行符 10.2.3 文件结束标志 10.2.4 打开与关闭文件 10.2.5 从文件读取 10.2.6 将字符串写入文件 10.2.7 移动文件指针 10.2.8 读取目录内容 10.3 运行shell 命令 10.3.1 删除目录 10.3.2 重命名文件 10.3.3 触摸文件 10.4 系统级程序执行 10.4.1 净化输入 10.4.2 PHP 程序执行函数 10.5 小结 第11章 第三方程序库 11.1 PEAR 简介 11.1.1 安装PEAR 11.1.2 更新PEAR 11.2 使用PEAR 包管理器 11.2.1 安装PEAR 包 11.2.2 自动安装所有依赖 11.2.3 查看已经安装的PEAR 包 11.3 Composer 介绍 11.3.1 安装Composer 11.3.2 使用Composer 11.4 使用C 程序库扩展PHP 11.5 小结 第12章 日期与时间 12.1 UNIX 时间戳 12.2 PHP 日期与时间库 12.2.1 验证日期 12.2.2 格式化日期和时间 12.2.3 将时间戳转换为用户友好的值 12.2.4 处理时间戳 12.3 日期处理 12.3.1 显示本地日期与时间 12.3.2 显示网页的修改日期 12.3.3 确定当前月份的天数 12.3.4 确定任意给定月份的天数 12.3.5 计算当前日期X 天后的日期 12.4 日期和时间类 12.4.1 DateTime 构造函数 12.4.2 格式化日期 12.4.3 在实例化之后设定日期 12.4.4 在实例化之后设定时间 12.4.5 修改日期和时间 12.4.6 计算两个日期之间的差 12.5 小结 第13章 表单 13.1 PHP 和Web 表单 13.2 验证表单数据 13.2.1 文件删除 13.2.2 跨站脚本 13.2.3 净化用户输入 13.2.4 使用Filter 扩展检验和净化数据 13.2.5 处理多值表单组件 13.3 小结 第14章 用户身份验证 14.1 HTTP 身份验证的概念 14.2 使用PHP行用户身份验证 14.2.1 PHP 身份验证变量 14.2.2 有用的函数 14.3 PHP 身份验证方法 14.3.1 硬编码身份验证 14.3.2 基于文件的身份验证 14.3.3 基于数据库的身份验证 14.4 用户登录管理 14.4.1 密码散列 14.4.2 一次URL 和密码找回 14.5 使用OAuth 2.0 14.6 小结 第15章 处理文件上传 15.1 通过HTTP 上传文件 15.2 使用PHP 上传文件 15.2.1 PHP 文件上传及资源指令 15.2.2 $_FILES 数组 15.2.3 PHP 文件上传函数 15.2.4 上传中的错误消息 15.2.5 一个简单的例子 15.3 小结 第16章 网络 16.1 DNS、服务与服务器 16.1.1 DNS 16.1.2 服务 16.1.3 建立socket 连接 16.2 邮件 16.2.1 配置指令 16.2.2 使用PHP 脚本发送电子邮件 16.3 常见网络任务 16.3.1 ping 一台服务器 16.3.2 创建一个端口扫描程序 16.3.3 创建一个子网转换程序 16.4 小结 第17章 会话处理 17.1 什么是会话处理 17.2 配置指令 17.2.1 管理会话存储介质 17.2.2 设置会话文件路径 17.2.3 自动开启会话 17.2.4 设置会话名称 17.2.5 选择cookie 或URL 重写 17.2.6 设置会话cookie 的生命周期 17.2.7 设置会话cookie 的有效URL路径 17.2.8 设置缓存 17.3 使用会话 17.3.1 开始一个会话 17.3.2 销毁一个会话 17.3.3 设置和提取会话ID 17.3.4 创建和删除会话变量 17.3.5 会话数据的编码和解码 17.4 会话处理实例 17.4.1 返回用户的自动登录 17.4.2 生期查看的文档索引 17.5 创建定制的会话处理程序 17.5.1 将定制会话函数嵌入PHP 逻辑 17.5.2 使用基于MySQL 的定制会话处理程序 17.6 小结 第18章 Web 服务 18.1 为什么要使用Web 服务 18.2 从API 开始 18.3 API 安全 18.4 创建API 18.5 小结 第19章 PHP 安全编程 19.1 PHP 安全配置 19.2 隐藏配置的详细信息 19.2.1 隐藏Apache 19.2.2 隐藏PHP 19.3 隐藏敏感信息 19.3.1 隐藏文档根目录 19.3.2 拒绝访问带有某种扩展名的文件 19.4 数据加密 19.4.1 PHP 加密函数 19.4.2 使用OpenSSL 加密数据 19.5 小结 第20章 PHP 与jQuery 的集成 20.1 Ajax 简介 20.2 jQuery 简介 20.2.1 安装jQuery 20.2.2 一个简单的例子 20.2.3 对事件做出响应 20.2.4 jQuery 和DOM 20.3 创建用户名存在检验器 20.4 小结 第21章 MVC 与框架 21.1 MVC 简介 21.2 PHP 框架解决方案 21.2.1 CakePHP 框架 21.2.2 Symfony 框架 21.2.3 Zend 框架 21.2.4 Phalcon 框架 21.2.5 Laravel 框架 21.2.6 PHP 框架协作组织(PHP-FIG) 21.2.7 PSR-1 和PSR-2 编码规范 21.2.8 PSR-4 自动加载 21.3 小结 第22章 MySQL 简介 22.1 MySQL 为何如此流行 22.1.1 灵活 22.1.2 能力 22.1.3 灵活的许可证选项 22.2 的MySQL 用户 22.2.1 Craigslist 22.2.2 Twitter 22.2.3 GitHub 22.2.4 其他用户 22.3 MariaDB:MySQL 的一种替代方案 22.4 小结 第23章 安装与配置MySQL 23.1 下载MySQL 23.2 安装MySQL 23.2.1 在Linux 上安装MySQL 23.2.2 在Windows 上安装与配置MySQL 23.3 启动与停止MySQL 23.4 配置与优化MySQL 23.4.1 mysqld_safe 包装器 23.4.2 MySQL 配置与优化参数 23.4.3 my.cnf 文件 23.5 配置PHP 与MySQL 一起工作 23.5.1 在Linux 上重新配置PHP 23.5.2 在Windows 上重新配置PHP 23.6 小结 第24章 MySQL 客户端程序 24.1 命令行工具简介 24.1.1 mysql 客户端程序 24.1.2 mysqladmin 客户端程序 24.1.3 其他有用的客户端程序 24.2 有用的GUI 客户端程序 24.3 phpMyAdmin 24.4 小结 第25章 MySQL 存储引擎和数据类型 25.1 存储引擎 25.1.1 InnoDB 25.1.2 MyISAM 25.1.3 MEMORY 25.1.4 MERGE 25.1.5 FEDERATED 25.1.6 ARCHIVE 25.1.7 CSV 25.1.8 EXAMPLE 25.1.9 BLACKHOLE 25.1.10 存储引擎FAQ 25.2 数据类型和属 25.2.1 数据类型 25.2.2 数据类型属 25.3 处理数据库和表 25.3.1 处理数据库 25.3.2 处理数据表 25.3.3 修改表结构 25.3.4 INFORMATION_SCHEMA 25.4 小结 第26章 MySQL 安全 26.1 首先要做的事情 26.2 mysqld 守程的安全 26.3 MySQL 访问权限系统 26.3.1 权限系统的工作原理 26.3.2 访问控制信息保存的位置 26.4 用户与权限管理 26.4.1 创建用户 26.4.2 删除用户 26.4.3 重命名用户 26.4.4 grant 和revoke 命令 26.4.5 查看权限 26.5 限制用户资源 26.6 安全的MySQL 连接 26.6.1 授权选项 26.6.2 SSL 选项 26.6.3 启动MySQL 服务器并启用SSL 26.6.4 启用客户端SSL 连接 26.6.5 保存SSL 选项到my.cnf 文件 26.7 小结 第27章 PHP 与MySQL 27.1 安装的前提条件 27.1.1 在Linux/UNIX 上启用mysqli 27.1.2 在Windows 上启用mysqli 27.1.3 使用MySQL Native Driver 27.1.4 管理用户权限 27.1.5 样本数据 27.2 使用mysqli 扩展 27.2.1 建立与断开连接 27.2.2 处理连接错误 27.2.3 提取错误信息 27.2.4 保存连接信息到单独的文件中 27.2.5 保证连接信息的安全 27.3 与数据库交互 27.3.1 发送查询到数据库 27.3.2 解析查询结果 27.3.3 确定选取和影响的行 27.3.4 使用预处理语句 27.4 执行数据库事务 27.4.1 开启自动提交模式 27.4.2 提交事务 27.4.3 回滚事务 27.5 小结 第28章 PDO 介绍 28.1 另一种数据库抽象层吗 28.2 使用PDO 28.2.1 安装PDO 28.2.2 连接到数据库服务器并选择数据库 28.2.3 处理错误 28.2.4 获取和设置属 28.2.5 执行查询 28.2.6 预处理语句介绍 28.2.7 提取数据 28.2.8 设置绑定列 28.2.9 处理事务 28.3 小结 第29章 存储例程 29.1 你应该使用存储例程吗 29.1.1 存储例程的优点 29.1.2 存储例程的缺点 29.2 MySQL 如何实现存储例程 29.2.1 创建一个存储例程 29.2.2 声明和设置变量 29.2.3 执行存储例程 29.2.4 创建并使用多语句存储例程 29.2.5 在一个存储例程中调用另一个存储例程 29.2.6 修改存储例程 29.2.7 删除存储例程 29.2.8 查看存储例程的状态 29.2.9 查看存储例程的创建语法 29.2.10 条件处理 29.3 在Web 应用中集成存储例程 29.3.1 创建雇员奖金接口 29.3.2 提取多个行 29.4 小结 第30章 MySQL 触发器 30.1 触发器介绍 30.1.1 为什么使用触发器 30.1.2 在事件之前采取行动 30.1.3 在事件之后采取行动 30.1.4 before 触发器与after 触发器 30.2 MySQL 触发器支持 30.2.1 创建触发器 30.2.2 查看已有的触发器 30.2.3 修改触发器 30.2.4 删除触发器 30.3 集成触发器到Web 应用 30.4 小结 第31章 MySQL 视图 31.1 视图介绍 31.2 MySQL 对视图的支持 31.2.1 创建并运行视图 31.2.2 查看视图信息 31.2.3 修改视图 31.2.4 删除视图 31.2.5 更新视图 31.3 集成视图到Web 应用 31.4 小结 第32章 实用数据库查询 32.1 样本数据 32.2 创建表格化输出 32.2.1 安装HTML_Table 32.2.2 创建简单表格 32.2.3 创建可读更好的行输出 32.2.4 根据数据库数据创建表格 32.3 输出排序 32.4 创建分页输出 32.5 列出页码 32.6 使用子查询查询多个表 32.6.1 使用子查行比较 32.6.2 使用子查询确定存在 32.6.3 使用子查行数据库维护 32.6.4 在PHP 中使用子查询 32.7 使用游标迭代结果集合 32.7.1 游标的基础知识 32.7.2 创建游标 32.7.3 打开游标 32.7.4 使用游标 32.7.5 关闭游标 32.7.6 在PHP 中使用游标 32.8 小结 第33章 索引与搜索 33.1 数据库索引 33.1.1 主键索引 33.1.2 索引 33.1.3 普通索引 33.1.4 全文索引 33.1.5 索引实践 33.2 基于表单的搜索 33.2.1 执行简单搜索 33.2.2 扩展搜索功能 33.2.3 执行全文搜索 33.3 小结 第34章 事务 34.1 什么是事务 34.2 MySQL 事务功能 34.2.1 系统要求 34.2.2 表格创建 34.3 一个示例项目 34.3.1 创建表格并添加样本数据 34.3.2 执行示例事务 34.3.3 使用建议 34.4 使用PHP 创建事务型应用 34.5 小结 第35章 导入与导出数据 35.1 样本表格 35.2 使用数据分隔 35.3 导入数据 35.3.1 使用LOAD DATA INFILE 导入数据 35.3.2 使用mysqlimport 导入数据 35.3.3 使用PHP 加载表数据 35.4 导出数据 35.5 小结 |
编辑推荐 | |
1.本书是全面讲述PHP与MySQL的经典之作,不但详细介绍了这两种技术及其相关工具的核心特,还讲解了如何地结合这两种技术构建出健壮的数据驱动的应用程序。 |
前言 | |
这是《PHP与MySQL程序设计》的第5版,这次修订的重点在于PHP的新增功能以及新版MySQL:在本书第4版LII版后,PHP发布了第7个版本,不但对语言本行了增强.还大幅提升了能。与PHP 5 6相比,PHP 7在某些情况下速度可以快一倍以上,内存使用却不及前者的一半。在本书写作期间,7 0、7.1和7.2版相继发布.7.3版也即将发布。 MySQL数据库也发生了很多变化。最重要的是,Oracle对它的收购以及随后MariaDB的发布使新版本受到了重视。MariaDB是MySQL的一个分支,它在能和特方面都有很大提升.而且形成了一个快速发展的社区。实际上,现在很多的Linux发行版已经将MariaDB作为标准的MySQL数据库。 本书将会教你在同时考虑能和安全的情况下安装和配置PHP及MySQL,重点介绍PHP7中的新功能.以及MySQL当前版本所支持的新数据类型。 |
摘要 | |
技术民主化是一个过程,在这个过程中,技术被越来越多的民众所使用。在这个民主化过程巾,有力的决定者可能就是互联网,它已经成为全球开发人员创建和共享开源软件台。”这种软件继而催生m数百万个网站,这些网站的所有者包括《财富》50强公司、独立主权心家、教育机构、创业公司、各种各样的组织,以及个人。 在互联网技术体系中经常有一些不知从什么地方冒出来的技术扮演重要角色,这些技术一般是由很多开发人员协作开发的(你应该马上想到Apache Web服务器、Perl、Python和Ruby语言)。尽管这样的例子举不胜举,但其巾追随者最多的可能是PHP语言。PHP语言创建于20世纪90年代中期,创建者名叫拉斯姆斯·勒多夫,是一位具有加拿大和丹麦双国籍的软件开发人员。他最初只是想用这门语言来丰富其个人网站的功能,但很快就把这些功能背后的代码公开m来供其他人使用。并把这个项目命名为Personal卜Iome-Page,缩写为PHP。接下来的事情就世人皆知了。 在PHP随后的各个版本中,越来越多的贡献者提交增强功能、修复缺陷,用户数量也不断暴增。2013年1月Netcraft公司的一份调查显示,使j刳PHP的网站从20世纪90年代中期的几十个暴增到了2 44亿个(其中包括Face’DOOk、wl】~lpealia、ciscoWebEx和IBM)。在Web开发人员有很多优良选择的环境中 PHP能得到如此广泛的应用,真是一项叹为观止的成就。在2016年和2017年,有报道称,在编程语言已知的Web服务器中,有82%的服务器使用了PHP。 那么,PHP到底有什么优点,使得它成为如此引人人胜的语青呢’在本章中,我希望能把这个问题解释清楚。我会以PHP当前的版本为重点,阐述这门语言的核心特,并全面介绍PHP庞大的生态系统,这个生态系统从各个方面增强了该语言的功能。学完本章,你将了解: 口不论足对编程菜鸟还是领域专家来说,PHP语言中有哪些核心特具有吸引力; 口当前的主版本PHP 7(推荐使用版本)提供了哪些功能,下一次发布义会有哪些新功能; 口PHP生态系统如何从各个方面扩展PHP的能力。
1.1 PHP核心特 每个使用PHI创建他们梦想中Web应用的人都有自己特定的理南,尽管如此,我们还是可以将使用PHP的动机分为四大类:实用、能力、可能和价格。 1.1.1实用 使用PHP有一个简单的理由:向静态Web环境中引入动态内容。如今,网站大多是动态集成的,但还是有大量机会向某个网页中添加一点简单的动态内容,比如搜索输入框的自动完成功能。PHP适合各种的开发人员,包括新手程序员,因为它的门槛低..举例来说,一个可用的PHP脚本可以简洁到只有一行代码;它不像很多其他语言那样,需要强制包含多个库文件。例如,以下使用了PHP的网页中就包含有效的PHP脚本,所有在
...... |
作者简介 | |
弗兰克·M.克罗曼(Frank M.Kromann),Amazon软件开发经理,Web by Pixel公司联合创始人兼CEO,有20余年开发和管理经验的PHP专家,在使用软件和技术解决商业问题方面有30余年经验。在杂志上发表过多篇PHP文章,另合著有《PHP 5范例代码查询辞典》。, 陈光欣,毕业于清华大学并留校工作,主要兴趣为数据分析与数据挖掘。 |