PHP与MySQL程序设计 第5版

PHP与MySQL程序设计 第5版
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Frank M. Kromann)
2020-08
版次: 1
ISBN: 9787115543592
定价: 139.00
装帧: 平装
页数: 446页
字数: 1千字
9人买过
  • 本书是全面讲述PHP 与MySQL 的经典畅销之作,不但详细介绍了这两种技术及其相关工具的核心特性,还讲解了如何高效地结合这两种技术构建出健壮的数据驱动的应用程序。书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际工作中所面临的各种挑战。第5 版涵盖了PHP 7 的新增功能以及新版MySQL 的新特性。 弗兰克·M.克罗曼(Frank M. Kromann)

    Amazon软件开发经理,Web by Pixel公司联合创始人兼CEO,有20余年开发和管理经验的PHP专家,在使用软件和技术解决商业问题方面有30余年经验。在杂志上发表过多篇PHP文章,另合著有《PHP 5范例代码查询辞典》。 第 1 章 PHP 简介    1

    1.1 PHP 核心特性    1

    1.1.1 实用性    1

    1.1.2 能力    3

    1.1.3 可能性    3

    1.1.4 价格    3

    1.2 PHP 现状    4

    1.3 PHP 生态系统    5

    1.3.1 Drupal    5

    1.3.2 WordPress    6

    1.3.3 Magento    6

    1.3.4 MediaWiki    6

    1.3.5 SugarCRM    6

    1.3.6 Zend Framework    6

    1.4 小结    7

    第 2 章 环境配置    8

    2.1 选择主机环境    9

    2.1.1 虚拟服务器    9

    2.1.2 平台即服务(PaaS)    9

    2.2 安装先决条件    9

    2.2.1 Windows    9

    2.2.2 macOS    14

    2.2.3 Linux    15

    2.2.4 从源代码安装    15

    2.3 配置PHP    15

    2.3.1 Apache httpd.conf 和.htaccess文件    16

    2.3.2 在运行脚本中配置    17

    2.3.3 PHP 的配置指令    17

    2.4 选择编辑器    23

    2.4.1 PHPStorm    23

    2.4.2 Atom    23

    2.4.3 Sublime Text    23

    2.4.4 Visual Studio Code    23

    2.4.5 PDT(PHP 开发工具)    23

    2.4.6 Zend Studio    23

    2.5 小结    24

    第3 章 PHP 基础    25

    3.1 在网页中嵌入PHP 代码    25

    3.1.1 默认语法    25

    3.1.2 短标签    26

    3.1.3 嵌入多个代码块    26

    3.2 在代码中添加注释    27

    3.2.1 单行C++语法    27

    3.2.2 多行注释    27

    3.3 向客户端输出数据    28

    3.3.1 使用printf()语句进行复杂输出    29

    3.3.2 sprintf()语句    30

    3.4 PHP 数据类型    30

    3.4.1 标量数据类型    30

    3.4.2 复合数据类型    31

    3.4.3 数据类型转换    32

    3.4.4 数据类型的自动转换    33

    3.4.5 类型标识符函数    34

    3.5 使用变量处理动态数据    34

    3.5.1 变量声明    34

    3.5.2 PHP 超级全局变量    35

    3.6 使用常量管理固定数据    38

    3.7 使用表达式    38

    3.7.1 操作数:表达式的输入    38

    3.7.2 操作符:表达式的行为    39

    3.8 字符串插值    43

    3.8.1 双引号字符串    43

    3.8.2 转义序列    44

    3.8.3 单引号字符串    44

    3.8.4 花括号    45

    3.8.5 heredoc    45

    3.8.6 nowdoc    45

    3.9 控制结构    45

    3.9.1 条件语句    46

    3.9.2 使用循环语句进行重复迭代   47

    3.9.3 文件包含语句    51

    3.10 小结    52

    第4 章 函数    53

    4.1 调用函数    53

    4.2 创建函数    54

    4.2.1 返回多个值    55

    4.2.2 按值传递参数    55

    4.2.3 参数默认值    56

    4.2.4 使用类型声明    57

    4.2.5 递归函数    57

    4.2.6 匿名函数    60

    4.2.7 函数库    60

    4.3 小结    61

    第5 章 数组    62

    5.1 什么是数组    62

    5.2 创建数组    63

    5.2.1 使用array()创建数组    64

    5.2.2 使用list()提取数组    64

    5.2.3 用预定义范围的值填充数组   65

    5.2.4 检测数组    66

    5.3 输出数组    66

    5.4 添加和删除数组元素    67

    5.4.1 在数组开头添加一个值    68

    5.4.2 在数组末尾添加一个值    68

    5.4.3 在数组开头删除一个值    68

    5.4.4 在数组末尾删除一个值    68

    5.5 数组元素定位    68

    5.5.1 搜索数组    69

    5.5.2 提取数组的键    70

    5.5.3 提取数组的值    70

    5.6 提取列    70

    5.7 数组遍历    71

    5.7.1 提取数组当前的键    71

    5.7.2 提取数组当前的值    71

    5.7.3 移动数组指针    72

    5.7.4 向函数传递数组值    72

    5.8 确定数组大小和唯一性    73

    5.8.1 确定函数大小    73

    5.8.2 计算数组值的频率    74

    5.8.3 确定数组中的唯一值    74

    5.9 数组排序    75

    5.9.1 翻转数组元素顺序    75

    5.9.2 键与值的互换    75

    5.9.3 数组排序    76

    5.10 数组的合并、切片、剪接和拆分    79

    5.10.1 合并数组    79

    5.10.2 递归追加数组    80

    5.10.3 组合两个数组    80

    5.10.4 数组的切片    81

    5.10.5 数组的剪接    81

    5.10.6 计算数组交集    82

    5.10.7 计算关联数组的交集    83

    5.10.8 计算数组的差    83

    5.10.9 计算关联数组的差    83

    5.11 其他有用的数组函数    84

    5.11.1 返回一组随机的键    84

    5.11.2 重排数组元素    84

    5.12 小结    85

    第6 章 面向对象的PHP    86

    6.1 OOP 的优点    86

    6.1.1 封装    86

    6.1.2 继承    87

    6.1.3 多态    87

    6.2 OOP 核心概念    87

    6.2.1 类    87

    6.2.2 对象    88

    6.2.3 属性    88

    6.2.4 常量    93

    6.2.5 方法    93

    6.3 构造函数与析构函数    96

    6.3.1 构造函数    96

    6.3.2 析构函数    98

    6.4 静态类成员    99

    6.5 instanceof 关键字    99

    6.6 辅助函数    100

    6.6.1 确定一个类是否存在    100

    6.6.2 确定对象上下文    100

    6.6.3 获取类的方法    100

    6.6.4 获取类的属性    100

    6.6.5 获取已声明的类    100

    6.6.6 获取对象属性    101

    6.6.7 确定对象的父类    101

    6.6.8 确定对象类型    101

    6.6.9 确定对象子类类型    101

    6.6.10 确定方法是否存在    101

    6.7 自动加载对象    101

    6.8 trait    102

    6.9 小结    102

    第7 章 高级OOP 特性    103

    7.1 PHP 不支持的高级OOP 特性    103

    7.2 对象克隆    103

    7.2.1 克隆示例    104

    7.2.2 __clone()方法    105

    7.3 继承    106

    7.3.1 类的继承    106

    7.3.2 继承与构造函数    108

    7.3.3 继承与延迟静态绑定    109

    7.4 接口    110

    7.4.1 实现单个接口    111

    7.4.2 实现多个接口    112

    7.4.3 确定接口是否存在    112

    7.5 抽象类    112

    7.6 命名空间    114

    7.7 小结    116

    第8 章 错误与异常处理    117

    8.1 所有问题都是因你而生    117

    8.2 配置PHP 错误报告    118

    8.2.1 设置错误报告等级    118

    8.2.2 在浏览器上显示错误信息    119

    8.2.3 错误日志    119

    8.2.4 创建和记录自定义消息    120

    8.3 异常处理    120

    8.4 PHP 异常处理功能    121

    8.4.1 扩展基础异常类    121

    8.4.2 默认构造函数    122

    8.4.3 引入finally 代码块    122

    8.4.4 扩展异常类    123

    8.4.5 捕获多个异常    123

    8.4.6 标准PHP 类库中的异常    125

    8.5 PHP 7 中的错误处理    125

    8.6 小结    126

    第9 章 字符串与正则表达式    127

    9.1 正则表达式    127

    9.2 其他字符串专用函数    133

    9.2.1 确定字符串的长度    134

    9.2.2 比较两个字符串    134

    9.2.3 处理字符串大小写    136

    9.2.4 字符串与HTML 的转换    137

    9.3 正则表达式函数的替代方式   141

    9.3.1 根据预定义字符对字符串进行分词    141

    9.3.2 根据预定义分隔符拆分字符串    142

    9.3.3 将数组转换为字符串    142

    9.3.4 解析复杂字符串    143

    9.3.5 找出字符串最后出现的位置    143

    9.3.6 将所有字符串实例替换为另一个字符串    144

    9.3.7 提取部分字符串    144

    9.3.8 根据预定义偏移量返回部分字符串    145

    9.3.9 确定字符串出现的频率    145

    9.3.10 将字符串的一部分替换为另一个字符串    146

    9.3.11 填充和剥离字符串    146

    9.3.12 字符与单词计数    147

    9.4 小结    149

    第 10 章 处理文件与操作系统    150

    10.1 了解文件与目录    150

    10.1.1 目录分隔符   150

    10.1.2 解析目录路径    150

    10.1.3 计算文件、目录和磁盘大小    152

    10.1.4 确定访问时间和修改时间    155

    10.2 处理文件    156

    10.2.1 资源的概念   156

    10.2.2 换行符    156

    10.2.3 文件结束标志    156

    10.2.4 打开与关闭文件    157

    10.2.5 从文件读取    158

    10.2.6 将字符串写入文件    164

    10.2.7 移动文件指针    164

    10.2.8 读取目录内容    165

    10.3 运行shell 命令    166

    10.3.1 删除目录    166

    10.3.2 重命名文件    167

    10.3.3 触摸文件    167

    10.4 系统级程序执行    167

    10.4.1 净化输入    167

    10.4.2 PHP 程序执行函数    168

    10.5 小结    170

    第 11 章 第三方程序库    171

    11.1 PEAR 简介    171

    11.1.1 安装PEAR    171

    11.1.2 更新PEAR    172

    11.2 使用PEAR 包管理器    172

    11.2.1 安装PEAR 包    172

    11.2.2 自动安装所有依赖    173

    11.2.3 查看已经安装的PEAR 包    173

    11.3 Composer 介绍    173

    11.3.1 安装Composer    173

    11.3.2 使用Composer    174

    11.4 使用C 程序库扩展PHP    175

    11.5 小结    176

    第 12 章 日期与时间    177

    12.1 UNIX 时间戳    177

    12.2 PHP 日期与时间库    177

    12.2.1 验证日期    178

    12.2.2 格式化日期和时间    178

    12.2.3 将时间戳转换为用户友好的值    181

    12.2.4 处理时间戳    181

    12.3 日期处理    183

    12.3.1 显示本地日期与时间    183

    12.3.2 显示网页最近的修改日期    185

    12.3.3 确定当前月份的天数    186

    12.3.4 确定任意给定月份的天数    186

    12.3.5 计算当前日期X 天后的日期    186

    12.4 日期和时间类    187

    12.4.1 DateTime 构造函数    187

    12.4.2 格式化日期    187

    12.4.3 在实例化之后设定日期    188

    12.4.4 在实例化之后设定时间    188

    12.4.5 修改日期和时间    188

    12.4.6 计算两个日期之间的差    189

    12.5 小结    189

    第 13 章 表单    190

    13.1 PHP 和Web 表单    190

    13.2 验证表单数据    192

    13.2.1 文件删除    192

    13.2.2 跨站脚本    192

    13.2.3 净化用户输入    193

    13.2.4 使用Filter 扩展检验和净化数据    195

    13.2.5 处理多值表单组件    197

    13.3 小结    198

    第 14 章 用户身份验证    199

    14.1 HTTP 身份验证的概念    199

    14.2 使用PHP 进行用户身份验证    200

    14.2.1 PHP 身份验证变量    201

    14.2.2 有用的函数    201

    14.3 PHP 身份验证方法    202

    14.3.1 硬编码身份验证    202

    14.3.2 基于文件的身份验证    202

    14.3.3 基于数据库的身份验证    204

    14.4 用户登录管理    205

    14.4.1 密码散列    205

    14.4.2 一次性URL 和密码找回    206

    14.5 使用OAuth 2.0    208

    14.6 小结    209

    第 15 章 处理文件上传    210

    15.1 通过HTTP 上传文件    210

    15.2 使用PHP 上传文件    211

    15.2.1 PHP 文件上传及资源指令    211

    15.2.2 $_FILES 数组    212

    15.2.3 PHP 文件上传函数    212

    15.2.4 上传中的错误消息    213

    15.2.5 一个简单的例子    214

    15.3 小结    215

    第 16 章 网络    216

    16.1 DNS、服务与服务器    216

    16.1.1 DNS    216

    16.1.2 服务    220

    16.1.3 建立socket 连接    221

    16.2 邮件    223

    16.2.1 配置指令    223

    16.2.2 使用PHP 脚本发送电子邮件    224

    16.3 常见网络任务    226

    16.3.1 ping 一台服务器    227

    16.3.2 创建一个端口扫描程序    227

    16.3.3 创建一个子网转换程序    228

    16.4 小结    229

    第 17 章 会话处理    230

    17.1 什么是会话处理    230

    17.2 配置指令    230

    17.2.1 管理会话存储介质    231

    17.2.2 设置会话文件路径    231

    17.2.3 自动开启会话   231

    17.2.4 设置会话名称   231

    17.2.5 选择cookie 或URL 重写    232

    17.2.6 设置会话cookie 的生命周期    232

    17.2.7 设置会话cookie 的有效URL路径    232

    17.2.8 设置缓存    233

    17.3 使用会话    234

    17.3.1 开始一个会话   234

    17.3.2 销毁一个会话   234

    17.3.3 设置和提取会话ID    234

    17.3.4 创建和删除会话变量    235

    17.3.5 会话数据的编码和解码    236

    17.4 会话处理实例    237

    17.4.1 返回用户的自动登录    237

    17.4.2 生成近期查看的文档索引    239

    17.5 创建定制的会话处理程序    240

    17.5.1 将定制会话函数嵌入PHP 逻辑    241

    17.5.2 使用基于MySQL 的定制会话处理程序    241

    17.6 小结    243

    第 18 章 Web 服务    244

    18.1 为什么要使用Web 服务    244

    18.2 从API 开始    244

    18.3 API 安全性    248

    18.4 创建API   249

    18.5 小结    253

    第 19 章 PHP 安全编程    254

    19.1 PHP 安全配置    254

    19.2 隐藏配置的详细信息    256

    19.2.1 隐藏Apache    256

    19.2.2 隐藏PHP    257

    19.3 隐藏敏感信息    257

    19.3.1 隐藏文档根目录    258

    19.3.2 拒绝访问带有某种扩展名的文件    258

    19.4 数据加密    258

    19.4.1 PHP 加密函数   258

    19.4.2 使用OpenSSL 加密数据    261

    19.5 小结    263

    第 20 章 PHP 与jQuery 的集成    264

    20.1 Ajax 简介    264

    20.2 jQuery 简介    265

    20.2.1 安装jQuery    265

    20.2.2 一个简单的例子    265

    20.2.3 对事件做出响应    266

    20.2.4 jQuery 和DOM    267

    20.3 创建用户名存在性检验器    269

    20.4 小结    272

    第 21 章 MVC 与框架    273

    21.1 MVC 简介    273

    21.2 PHP 框架解决方案    274

    21.2.1 CakePHP 框架    275

    21.2.2 Symfony 框架    275

    21.2.3 Zend 框架    275

    21.2.4 Phalcon 框架    275

    21.2.5 Laravel 框架    276

    21.2.6 PHP 框架协作组织(PHP-FIG)    280

    21.2.7 PSR-1 和PSR-2 编码规范    280

    21.2.8 PSR-4 自动加载    281

    21.3 小结    281

    第 22 章 MySQL 简介    282

    22.1 MySQL 为何如此流行    282

    22.1.1 灵活性    282

    22.1.2 能力    283

    22.1.3 灵活的许可证选项    284

    22.2 著名的MySQL 用户    284

    22.2.1 Craigslist    284

    22.2.2 Twitter    284

    22.2.3 GitHub    284

    22.2.4 其他著名用户    284

    22.3 MariaDB:MySQL 的一种替代方案    285

    22.4 小结    285

    第 23 章 安装与配置MySQL    286

    23.1 下载MySQL    286

    23.2 安装MySQL    286

    23.2.1 在Linux 上安装MySQL    287

    23.2.2 在Windows 上安装与配置MySQL   289

    23.3 启动与停止MySQL    290

    23.4 配置与优化MySQL    291

    23.4.1 mysqld_safe 包装器    291

    23.4.2 MySQL 配置与优化参数    291

    23.4.3 my.cnf 文件    294

    23.5 配置PHP 与MySQL 一起工作    296

    23.5.1 在Linux 上重新配置PHP    296

    23.5.2 在Windows 上重新配置PHP    296

    23.6 小结    296

    第 24 章 MySQL 客户端程序    297

    24.1 命令行工具简介    297

    24.1.1 mysql 客户端程序    297

    24.1.2 mysqladmin 客户端程序    304

    24.1.3 其他有用的客户端程序    305

    24.2 有用的GUI 客户端程序    307

    24.3 phpMyAdmin    307

    24.4 小结    308

    第 25 章 MySQL 存储引擎和数据类型    309

    25.1 存储引擎    309

    25.1.1 InnoDB    310

    25.1.2 MyISAM    310

    25.1.3 MEMORY    311

    25.1.4 MERGE    312

    25.1.5 FEDERATED    312

    25.1.6 ARCHIVE    313

    25.1.7 CSV    313

    25.1.8 EXAMPLE    313

    25.1.9 BLACKHOLE    314

    25.1.10 存储引擎FAQ    314

    25.2 数据类型和属性    315

    25.2.1 数据类型    315

    25.2.2 数据类型属性    319

    25.3 处理数据库和表    321

    25.3.1 处理数据库    321

    25.3.2 处理数据表    322

    25.3.3 修改表结构    324

    25.3.4 INFORMATION_SCHEMA    325

    25.4 小结    327

    第 26 章 MySQL 安全性    328

    26.1 首先要做的事情    328

    26.2 mysqld 守护进程的安全性    329

    26.3 MySQL 访问权限系统    330

    26.3.1 权限系统的工作原理    330

    26.3.2 访问控制信息保存的位置    331

    26.4 用户与权限管理    334

    26.4.1 创建用户    334

    26.4.2 删除用户    335

    26.4.3 重命名用户    335

    26.4.4 grant 和revoke 命令    335

    26.4.5 查看权限    339

    26.5 限制用户资源    339

    26.6 安全的MySQL 连接    340

    26.6.1 授权选项    340

    26.6.2 SSL 选项    341

    26.6.3 启动MySQL 服务器并启用SSL    342

    26.6.4 启用客户端SSL 连接    342

    26.6.5 保存SSL 选项到my.cnf 文件    342

    26.7 小结    342

    第 27 章 PHP 与MySQL    343

    27.1 安装的前提条件    344

    27.1.1 在Linux/UNIX 上启用mysqli    344

    27.1.2 在Windows 上启用mysqli    344

    27.1.3 使用MySQL Native Driver    344

    27.1.4 管理用户权限   344

    27.1.5 样本数据    345

    27.2 使用mysqli 扩展    345

    27.2.1 建立与断开连接    345

    27.2.2 处理连接错误   346

    27.2.3 提取错误信息   346

    27.2.4 保存连接信息到单独的文件中    347

    27.2.5 保证连接信息的安全性    348

    27.3 与数据库交互    348

    27.3.1 发送查询到数据库    348

    27.3.2 解析查询结果   350

    27.3.3 确定选取和影响的行    351

    27.3.4 使用预处理语句    352

    27.4 执行数据库事务    356

    27.4.1 开启自动提交模式    356

    27.4.2 提交事务    356

    27.4.3 回滚事务    356

    27.5 小结    357

    第 28 章 PDO 介绍    358

    28.1 另一种数据库抽象层吗    358

    28.2 使用PDO    359

    28.2.1 安装PDO    360

    28.2.2 连接到数据库服务器并选择数据库    360

    28.2.3 处理错误    362

    28.2.4 获取和设置属性    363

    28.2.5 执行查询    364

    28.2.6 预处理语句介绍    365

    28.2.7 提取数据    368

    28.2.8 设置绑定列    370

    28.2.9 处理事务    371

    28.3 小结    372

    第 29 章 存储例程    373

    29.1 你应该使用存储例程吗    373

    29.1.1 存储例程的优点    373

    29.1.2 存储例程的缺点    373

    29.2 MySQL 如何实现存储例程    374

    29.2.1 创建一个存储例程    374

    29.2.2 声明和设置变量    376

    29.2.3 执行存储例程    377

    29.2.4 创建并使用多语句存储例程    377

    29.2.5 在一个存储例程中调用另一个存储例程    383

    29.2.6 修改存储例程    384

    29.2.7 删除存储例程    384

    29.2.8 查看存储例程的状态    384

    29.2.9 查看存储例程的创建语法    385

    29.2.10 条件处理    386

    29.3 在Web 应用中集成存储例程    386

    29.3.1 创建雇员奖金接口    386

    29.3.2 提取多个行   387

    29.4 小结    388

    第30 章 MySQL 触发器    389

    30.1 触发器介绍    389

    30.1.1 为什么使用触发器    389

    30.1.2 在事件之前采取行动    390

    30.1.3 在事件之后采取行动    390

    30.1.4 before 触发器与after 触发器    391

    30.2 MySQL 触发器支持    391

    30.2.1 创建触发器   391

    30.2.2 查看已有的触发器    392

    30.2.3 修改触发器   394

    30.2.4 删除触发器   394

    30.3 集成触发器到Web 应用    395

    30.4 小结    396

    第31 章 MySQL 视图    397

    31.1 视图介绍    397

    31.2 MySQL 对视图的支持    398

    31.2.1 创建并运行视图    398

    31.2.2 查看视图信息    402

    31.2.3 修改视图    404

    31.2.4 删除视图    404

    31.2.5 更新视图    404

    31.3 集成视图到Web 应用    405

    31.4 小结    406

    第32 章 实用数据库查询    407

    32.1 样本数据    407

    32.2 创建表格化输出    407

    32.2.1 安装HTML_Table    408

    32.2.2 创建简单表格    408

    32.2.3 创建可读性更好的行输出    409

    32.2.4 根据数据库数据创建表格    410

    32.3 输出排序    411

    32.4 创建分页输出    412

    32.5 列出页码    414

    32.6 使用子查询查询多个表    415

    32.6.1 使用子查询进行比较    416

    32.6.2 使用子查询确定存在性    416

    32.6.3 使用子查询进行数据库维护    417

    32.6.4 在PHP 中使用子查询    417

    32.7 使用游标迭代结果集合    418

    32.7.1 游标的基础知识    418

    32.7.2 创建游标    418

    32.7.3 打开游标    418

    32.7.4 使用游标    419

    32.7.5 关闭游标    419

    32.7.6 在PHP 中使用游标    420

    32.8 小结    420

    第33 章 索引与搜索    421

    33.1 数据库索引    421

    33.1.1 主键索引    421

    33.1.2 唯一索引    422

    33.1.3 普通索引    423

    33.1.4 全文索引    424

    33.1.5 索引最佳实践    427

    33.2 基于表单的搜索    427

    33.2.1 执行简单搜索    428

    33.2.2 扩展搜索功能    429

    33.2.3 执行全文搜索    430

    33.3 小结    431

    第34 章 事务    432

    34.1 什么是事务    432

    34.2 MySQL 事务功能    432

    34.2.1 系统要求    432

    34.2.2 表格创建    433

    34.3 一个示例项目    433

    34.3.1 创建表格并添加样本数据    434

    34.3.2 执行示例事务    434

    34.3.3 使用建议    436

    34.4 使用PHP 创建事务型应用    436

    34.5 小结    437

    第35 章 导入与导出数据    438

    35.1 样本表格    438

    35.2 使用数据分隔    438

    35.3 导入数据    439

    35.3.1 使用LOAD DATA INFILE 导入数据    439

    35.3.2 使用mysqlimport 导入数据    441

    35.3.3 使用PHP 加载表数据    443

    35.4 导出数据    444

    35.5 小结    446
  • 内容简介:
    本书是全面讲述PHP 与MySQL 的经典畅销之作,不但详细介绍了这两种技术及其相关工具的核心特性,还讲解了如何高效地结合这两种技术构建出健壮的数据驱动的应用程序。书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际工作中所面临的各种挑战。第5 版涵盖了PHP 7 的新增功能以及新版MySQL 的新特性。
  • 作者简介:
    弗兰克·M.克罗曼(Frank M. Kromann)

    Amazon软件开发经理,Web by Pixel公司联合创始人兼CEO,有20余年开发和管理经验的PHP专家,在使用软件和技术解决商业问题方面有30余年经验。在杂志上发表过多篇PHP文章,另合著有《PHP 5范例代码查询辞典》。
  • 目录:
    第 1 章 PHP 简介    1

    1.1 PHP 核心特性    1

    1.1.1 实用性    1

    1.1.2 能力    3

    1.1.3 可能性    3

    1.1.4 价格    3

    1.2 PHP 现状    4

    1.3 PHP 生态系统    5

    1.3.1 Drupal    5

    1.3.2 WordPress    6

    1.3.3 Magento    6

    1.3.4 MediaWiki    6

    1.3.5 SugarCRM    6

    1.3.6 Zend Framework    6

    1.4 小结    7

    第 2 章 环境配置    8

    2.1 选择主机环境    9

    2.1.1 虚拟服务器    9

    2.1.2 平台即服务(PaaS)    9

    2.2 安装先决条件    9

    2.2.1 Windows    9

    2.2.2 macOS    14

    2.2.3 Linux    15

    2.2.4 从源代码安装    15

    2.3 配置PHP    15

    2.3.1 Apache httpd.conf 和.htaccess文件    16

    2.3.2 在运行脚本中配置    17

    2.3.3 PHP 的配置指令    17

    2.4 选择编辑器    23

    2.4.1 PHPStorm    23

    2.4.2 Atom    23

    2.4.3 Sublime Text    23

    2.4.4 Visual Studio Code    23

    2.4.5 PDT(PHP 开发工具)    23

    2.4.6 Zend Studio    23

    2.5 小结    24

    第3 章 PHP 基础    25

    3.1 在网页中嵌入PHP 代码    25

    3.1.1 默认语法    25

    3.1.2 短标签    26

    3.1.3 嵌入多个代码块    26

    3.2 在代码中添加注释    27

    3.2.1 单行C++语法    27

    3.2.2 多行注释    27

    3.3 向客户端输出数据    28

    3.3.1 使用printf()语句进行复杂输出    29

    3.3.2 sprintf()语句    30

    3.4 PHP 数据类型    30

    3.4.1 标量数据类型    30

    3.4.2 复合数据类型    31

    3.4.3 数据类型转换    32

    3.4.4 数据类型的自动转换    33

    3.4.5 类型标识符函数    34

    3.5 使用变量处理动态数据    34

    3.5.1 变量声明    34

    3.5.2 PHP 超级全局变量    35

    3.6 使用常量管理固定数据    38

    3.7 使用表达式    38

    3.7.1 操作数:表达式的输入    38

    3.7.2 操作符:表达式的行为    39

    3.8 字符串插值    43

    3.8.1 双引号字符串    43

    3.8.2 转义序列    44

    3.8.3 单引号字符串    44

    3.8.4 花括号    45

    3.8.5 heredoc    45

    3.8.6 nowdoc    45

    3.9 控制结构    45

    3.9.1 条件语句    46

    3.9.2 使用循环语句进行重复迭代   47

    3.9.3 文件包含语句    51

    3.10 小结    52

    第4 章 函数    53

    4.1 调用函数    53

    4.2 创建函数    54

    4.2.1 返回多个值    55

    4.2.2 按值传递参数    55

    4.2.3 参数默认值    56

    4.2.4 使用类型声明    57

    4.2.5 递归函数    57

    4.2.6 匿名函数    60

    4.2.7 函数库    60

    4.3 小结    61

    第5 章 数组    62

    5.1 什么是数组    62

    5.2 创建数组    63

    5.2.1 使用array()创建数组    64

    5.2.2 使用list()提取数组    64

    5.2.3 用预定义范围的值填充数组   65

    5.2.4 检测数组    66

    5.3 输出数组    66

    5.4 添加和删除数组元素    67

    5.4.1 在数组开头添加一个值    68

    5.4.2 在数组末尾添加一个值    68

    5.4.3 在数组开头删除一个值    68

    5.4.4 在数组末尾删除一个值    68

    5.5 数组元素定位    68

    5.5.1 搜索数组    69

    5.5.2 提取数组的键    70

    5.5.3 提取数组的值    70

    5.6 提取列    70

    5.7 数组遍历    71

    5.7.1 提取数组当前的键    71

    5.7.2 提取数组当前的值    71

    5.7.3 移动数组指针    72

    5.7.4 向函数传递数组值    72

    5.8 确定数组大小和唯一性    73

    5.8.1 确定函数大小    73

    5.8.2 计算数组值的频率    74

    5.8.3 确定数组中的唯一值    74

    5.9 数组排序    75

    5.9.1 翻转数组元素顺序    75

    5.9.2 键与值的互换    75

    5.9.3 数组排序    76

    5.10 数组的合并、切片、剪接和拆分    79

    5.10.1 合并数组    79

    5.10.2 递归追加数组    80

    5.10.3 组合两个数组    80

    5.10.4 数组的切片    81

    5.10.5 数组的剪接    81

    5.10.6 计算数组交集    82

    5.10.7 计算关联数组的交集    83

    5.10.8 计算数组的差    83

    5.10.9 计算关联数组的差    83

    5.11 其他有用的数组函数    84

    5.11.1 返回一组随机的键    84

    5.11.2 重排数组元素    84

    5.12 小结    85

    第6 章 面向对象的PHP    86

    6.1 OOP 的优点    86

    6.1.1 封装    86

    6.1.2 继承    87

    6.1.3 多态    87

    6.2 OOP 核心概念    87

    6.2.1 类    87

    6.2.2 对象    88

    6.2.3 属性    88

    6.2.4 常量    93

    6.2.5 方法    93

    6.3 构造函数与析构函数    96

    6.3.1 构造函数    96

    6.3.2 析构函数    98

    6.4 静态类成员    99

    6.5 instanceof 关键字    99

    6.6 辅助函数    100

    6.6.1 确定一个类是否存在    100

    6.6.2 确定对象上下文    100

    6.6.3 获取类的方法    100

    6.6.4 获取类的属性    100

    6.6.5 获取已声明的类    100

    6.6.6 获取对象属性    101

    6.6.7 确定对象的父类    101

    6.6.8 确定对象类型    101

    6.6.9 确定对象子类类型    101

    6.6.10 确定方法是否存在    101

    6.7 自动加载对象    101

    6.8 trait    102

    6.9 小结    102

    第7 章 高级OOP 特性    103

    7.1 PHP 不支持的高级OOP 特性    103

    7.2 对象克隆    103

    7.2.1 克隆示例    104

    7.2.2 __clone()方法    105

    7.3 继承    106

    7.3.1 类的继承    106

    7.3.2 继承与构造函数    108

    7.3.3 继承与延迟静态绑定    109

    7.4 接口    110

    7.4.1 实现单个接口    111

    7.4.2 实现多个接口    112

    7.4.3 确定接口是否存在    112

    7.5 抽象类    112

    7.6 命名空间    114

    7.7 小结    116

    第8 章 错误与异常处理    117

    8.1 所有问题都是因你而生    117

    8.2 配置PHP 错误报告    118

    8.2.1 设置错误报告等级    118

    8.2.2 在浏览器上显示错误信息    119

    8.2.3 错误日志    119

    8.2.4 创建和记录自定义消息    120

    8.3 异常处理    120

    8.4 PHP 异常处理功能    121

    8.4.1 扩展基础异常类    121

    8.4.2 默认构造函数    122

    8.4.3 引入finally 代码块    122

    8.4.4 扩展异常类    123

    8.4.5 捕获多个异常    123

    8.4.6 标准PHP 类库中的异常    125

    8.5 PHP 7 中的错误处理    125

    8.6 小结    126

    第9 章 字符串与正则表达式    127

    9.1 正则表达式    127

    9.2 其他字符串专用函数    133

    9.2.1 确定字符串的长度    134

    9.2.2 比较两个字符串    134

    9.2.3 处理字符串大小写    136

    9.2.4 字符串与HTML 的转换    137

    9.3 正则表达式函数的替代方式   141

    9.3.1 根据预定义字符对字符串进行分词    141

    9.3.2 根据预定义分隔符拆分字符串    142

    9.3.3 将数组转换为字符串    142

    9.3.4 解析复杂字符串    143

    9.3.5 找出字符串最后出现的位置    143

    9.3.6 将所有字符串实例替换为另一个字符串    144

    9.3.7 提取部分字符串    144

    9.3.8 根据预定义偏移量返回部分字符串    145

    9.3.9 确定字符串出现的频率    145

    9.3.10 将字符串的一部分替换为另一个字符串    146

    9.3.11 填充和剥离字符串    146

    9.3.12 字符与单词计数    147

    9.4 小结    149

    第 10 章 处理文件与操作系统    150

    10.1 了解文件与目录    150

    10.1.1 目录分隔符   150

    10.1.2 解析目录路径    150

    10.1.3 计算文件、目录和磁盘大小    152

    10.1.4 确定访问时间和修改时间    155

    10.2 处理文件    156

    10.2.1 资源的概念   156

    10.2.2 换行符    156

    10.2.3 文件结束标志    156

    10.2.4 打开与关闭文件    157

    10.2.5 从文件读取    158

    10.2.6 将字符串写入文件    164

    10.2.7 移动文件指针    164

    10.2.8 读取目录内容    165

    10.3 运行shell 命令    166

    10.3.1 删除目录    166

    10.3.2 重命名文件    167

    10.3.3 触摸文件    167

    10.4 系统级程序执行    167

    10.4.1 净化输入    167

    10.4.2 PHP 程序执行函数    168

    10.5 小结    170

    第 11 章 第三方程序库    171

    11.1 PEAR 简介    171

    11.1.1 安装PEAR    171

    11.1.2 更新PEAR    172

    11.2 使用PEAR 包管理器    172

    11.2.1 安装PEAR 包    172

    11.2.2 自动安装所有依赖    173

    11.2.3 查看已经安装的PEAR 包    173

    11.3 Composer 介绍    173

    11.3.1 安装Composer    173

    11.3.2 使用Composer    174

    11.4 使用C 程序库扩展PHP    175

    11.5 小结    176

    第 12 章 日期与时间    177

    12.1 UNIX 时间戳    177

    12.2 PHP 日期与时间库    177

    12.2.1 验证日期    178

    12.2.2 格式化日期和时间    178

    12.2.3 将时间戳转换为用户友好的值    181

    12.2.4 处理时间戳    181

    12.3 日期处理    183

    12.3.1 显示本地日期与时间    183

    12.3.2 显示网页最近的修改日期    185

    12.3.3 确定当前月份的天数    186

    12.3.4 确定任意给定月份的天数    186

    12.3.5 计算当前日期X 天后的日期    186

    12.4 日期和时间类    187

    12.4.1 DateTime 构造函数    187

    12.4.2 格式化日期    187

    12.4.3 在实例化之后设定日期    188

    12.4.4 在实例化之后设定时间    188

    12.4.5 修改日期和时间    188

    12.4.6 计算两个日期之间的差    189

    12.5 小结    189

    第 13 章 表单    190

    13.1 PHP 和Web 表单    190

    13.2 验证表单数据    192

    13.2.1 文件删除    192

    13.2.2 跨站脚本    192

    13.2.3 净化用户输入    193

    13.2.4 使用Filter 扩展检验和净化数据    195

    13.2.5 处理多值表单组件    197

    13.3 小结    198

    第 14 章 用户身份验证    199

    14.1 HTTP 身份验证的概念    199

    14.2 使用PHP 进行用户身份验证    200

    14.2.1 PHP 身份验证变量    201

    14.2.2 有用的函数    201

    14.3 PHP 身份验证方法    202

    14.3.1 硬编码身份验证    202

    14.3.2 基于文件的身份验证    202

    14.3.3 基于数据库的身份验证    204

    14.4 用户登录管理    205

    14.4.1 密码散列    205

    14.4.2 一次性URL 和密码找回    206

    14.5 使用OAuth 2.0    208

    14.6 小结    209

    第 15 章 处理文件上传    210

    15.1 通过HTTP 上传文件    210

    15.2 使用PHP 上传文件    211

    15.2.1 PHP 文件上传及资源指令    211

    15.2.2 $_FILES 数组    212

    15.2.3 PHP 文件上传函数    212

    15.2.4 上传中的错误消息    213

    15.2.5 一个简单的例子    214

    15.3 小结    215

    第 16 章 网络    216

    16.1 DNS、服务与服务器    216

    16.1.1 DNS    216

    16.1.2 服务    220

    16.1.3 建立socket 连接    221

    16.2 邮件    223

    16.2.1 配置指令    223

    16.2.2 使用PHP 脚本发送电子邮件    224

    16.3 常见网络任务    226

    16.3.1 ping 一台服务器    227

    16.3.2 创建一个端口扫描程序    227

    16.3.3 创建一个子网转换程序    228

    16.4 小结    229

    第 17 章 会话处理    230

    17.1 什么是会话处理    230

    17.2 配置指令    230

    17.2.1 管理会话存储介质    231

    17.2.2 设置会话文件路径    231

    17.2.3 自动开启会话   231

    17.2.4 设置会话名称   231

    17.2.5 选择cookie 或URL 重写    232

    17.2.6 设置会话cookie 的生命周期    232

    17.2.7 设置会话cookie 的有效URL路径    232

    17.2.8 设置缓存    233

    17.3 使用会话    234

    17.3.1 开始一个会话   234

    17.3.2 销毁一个会话   234

    17.3.3 设置和提取会话ID    234

    17.3.4 创建和删除会话变量    235

    17.3.5 会话数据的编码和解码    236

    17.4 会话处理实例    237

    17.4.1 返回用户的自动登录    237

    17.4.2 生成近期查看的文档索引    239

    17.5 创建定制的会话处理程序    240

    17.5.1 将定制会话函数嵌入PHP 逻辑    241

    17.5.2 使用基于MySQL 的定制会话处理程序    241

    17.6 小结    243

    第 18 章 Web 服务    244

    18.1 为什么要使用Web 服务    244

    18.2 从API 开始    244

    18.3 API 安全性    248

    18.4 创建API   249

    18.5 小结    253

    第 19 章 PHP 安全编程    254

    19.1 PHP 安全配置    254

    19.2 隐藏配置的详细信息    256

    19.2.1 隐藏Apache    256

    19.2.2 隐藏PHP    257

    19.3 隐藏敏感信息    257

    19.3.1 隐藏文档根目录    258

    19.3.2 拒绝访问带有某种扩展名的文件    258

    19.4 数据加密    258

    19.4.1 PHP 加密函数   258

    19.4.2 使用OpenSSL 加密数据    261

    19.5 小结    263

    第 20 章 PHP 与jQuery 的集成    264

    20.1 Ajax 简介    264

    20.2 jQuery 简介    265

    20.2.1 安装jQuery    265

    20.2.2 一个简单的例子    265

    20.2.3 对事件做出响应    266

    20.2.4 jQuery 和DOM    267

    20.3 创建用户名存在性检验器    269

    20.4 小结    272

    第 21 章 MVC 与框架    273

    21.1 MVC 简介    273

    21.2 PHP 框架解决方案    274

    21.2.1 CakePHP 框架    275

    21.2.2 Symfony 框架    275

    21.2.3 Zend 框架    275

    21.2.4 Phalcon 框架    275

    21.2.5 Laravel 框架    276

    21.2.6 PHP 框架协作组织(PHP-FIG)    280

    21.2.7 PSR-1 和PSR-2 编码规范    280

    21.2.8 PSR-4 自动加载    281

    21.3 小结    281

    第 22 章 MySQL 简介    282

    22.1 MySQL 为何如此流行    282

    22.1.1 灵活性    282

    22.1.2 能力    283

    22.1.3 灵活的许可证选项    284

    22.2 著名的MySQL 用户    284

    22.2.1 Craigslist    284

    22.2.2 Twitter    284

    22.2.3 GitHub    284

    22.2.4 其他著名用户    284

    22.3 MariaDB:MySQL 的一种替代方案    285

    22.4 小结    285

    第 23 章 安装与配置MySQL    286

    23.1 下载MySQL    286

    23.2 安装MySQL    286

    23.2.1 在Linux 上安装MySQL    287

    23.2.2 在Windows 上安装与配置MySQL   289

    23.3 启动与停止MySQL    290

    23.4 配置与优化MySQL    291

    23.4.1 mysqld_safe 包装器    291

    23.4.2 MySQL 配置与优化参数    291

    23.4.3 my.cnf 文件    294

    23.5 配置PHP 与MySQL 一起工作    296

    23.5.1 在Linux 上重新配置PHP    296

    23.5.2 在Windows 上重新配置PHP    296

    23.6 小结    296

    第 24 章 MySQL 客户端程序    297

    24.1 命令行工具简介    297

    24.1.1 mysql 客户端程序    297

    24.1.2 mysqladmin 客户端程序    304

    24.1.3 其他有用的客户端程序    305

    24.2 有用的GUI 客户端程序    307

    24.3 phpMyAdmin    307

    24.4 小结    308

    第 25 章 MySQL 存储引擎和数据类型    309

    25.1 存储引擎    309

    25.1.1 InnoDB    310

    25.1.2 MyISAM    310

    25.1.3 MEMORY    311

    25.1.4 MERGE    312

    25.1.5 FEDERATED    312

    25.1.6 ARCHIVE    313

    25.1.7 CSV    313

    25.1.8 EXAMPLE    313

    25.1.9 BLACKHOLE    314

    25.1.10 存储引擎FAQ    314

    25.2 数据类型和属性    315

    25.2.1 数据类型    315

    25.2.2 数据类型属性    319

    25.3 处理数据库和表    321

    25.3.1 处理数据库    321

    25.3.2 处理数据表    322

    25.3.3 修改表结构    324

    25.3.4 INFORMATION_SCHEMA    325

    25.4 小结    327

    第 26 章 MySQL 安全性    328

    26.1 首先要做的事情    328

    26.2 mysqld 守护进程的安全性    329

    26.3 MySQL 访问权限系统    330

    26.3.1 权限系统的工作原理    330

    26.3.2 访问控制信息保存的位置    331

    26.4 用户与权限管理    334

    26.4.1 创建用户    334

    26.4.2 删除用户    335

    26.4.3 重命名用户    335

    26.4.4 grant 和revoke 命令    335

    26.4.5 查看权限    339

    26.5 限制用户资源    339

    26.6 安全的MySQL 连接    340

    26.6.1 授权选项    340

    26.6.2 SSL 选项    341

    26.6.3 启动MySQL 服务器并启用SSL    342

    26.6.4 启用客户端SSL 连接    342

    26.6.5 保存SSL 选项到my.cnf 文件    342

    26.7 小结    342

    第 27 章 PHP 与MySQL    343

    27.1 安装的前提条件    344

    27.1.1 在Linux/UNIX 上启用mysqli    344

    27.1.2 在Windows 上启用mysqli    344

    27.1.3 使用MySQL Native Driver    344

    27.1.4 管理用户权限   344

    27.1.5 样本数据    345

    27.2 使用mysqli 扩展    345

    27.2.1 建立与断开连接    345

    27.2.2 处理连接错误   346

    27.2.3 提取错误信息   346

    27.2.4 保存连接信息到单独的文件中    347

    27.2.5 保证连接信息的安全性    348

    27.3 与数据库交互    348

    27.3.1 发送查询到数据库    348

    27.3.2 解析查询结果   350

    27.3.3 确定选取和影响的行    351

    27.3.4 使用预处理语句    352

    27.4 执行数据库事务    356

    27.4.1 开启自动提交模式    356

    27.4.2 提交事务    356

    27.4.3 回滚事务    356

    27.5 小结    357

    第 28 章 PDO 介绍    358

    28.1 另一种数据库抽象层吗    358

    28.2 使用PDO    359

    28.2.1 安装PDO    360

    28.2.2 连接到数据库服务器并选择数据库    360

    28.2.3 处理错误    362

    28.2.4 获取和设置属性    363

    28.2.5 执行查询    364

    28.2.6 预处理语句介绍    365

    28.2.7 提取数据    368

    28.2.8 设置绑定列    370

    28.2.9 处理事务    371

    28.3 小结    372

    第 29 章 存储例程    373

    29.1 你应该使用存储例程吗    373

    29.1.1 存储例程的优点    373

    29.1.2 存储例程的缺点    373

    29.2 MySQL 如何实现存储例程    374

    29.2.1 创建一个存储例程    374

    29.2.2 声明和设置变量    376

    29.2.3 执行存储例程    377

    29.2.4 创建并使用多语句存储例程    377

    29.2.5 在一个存储例程中调用另一个存储例程    383

    29.2.6 修改存储例程    384

    29.2.7 删除存储例程    384

    29.2.8 查看存储例程的状态    384

    29.2.9 查看存储例程的创建语法    385

    29.2.10 条件处理    386

    29.3 在Web 应用中集成存储例程    386

    29.3.1 创建雇员奖金接口    386

    29.3.2 提取多个行   387

    29.4 小结    388

    第30 章 MySQL 触发器    389

    30.1 触发器介绍    389

    30.1.1 为什么使用触发器    389

    30.1.2 在事件之前采取行动    390

    30.1.3 在事件之后采取行动    390

    30.1.4 before 触发器与after 触发器    391

    30.2 MySQL 触发器支持    391

    30.2.1 创建触发器   391

    30.2.2 查看已有的触发器    392

    30.2.3 修改触发器   394

    30.2.4 删除触发器   394

    30.3 集成触发器到Web 应用    395

    30.4 小结    396

    第31 章 MySQL 视图    397

    31.1 视图介绍    397

    31.2 MySQL 对视图的支持    398

    31.2.1 创建并运行视图    398

    31.2.2 查看视图信息    402

    31.2.3 修改视图    404

    31.2.4 删除视图    404

    31.2.5 更新视图    404

    31.3 集成视图到Web 应用    405

    31.4 小结    406

    第32 章 实用数据库查询    407

    32.1 样本数据    407

    32.2 创建表格化输出    407

    32.2.1 安装HTML_Table    408

    32.2.2 创建简单表格    408

    32.2.3 创建可读性更好的行输出    409

    32.2.4 根据数据库数据创建表格    410

    32.3 输出排序    411

    32.4 创建分页输出    412

    32.5 列出页码    414

    32.6 使用子查询查询多个表    415

    32.6.1 使用子查询进行比较    416

    32.6.2 使用子查询确定存在性    416

    32.6.3 使用子查询进行数据库维护    417

    32.6.4 在PHP 中使用子查询    417

    32.7 使用游标迭代结果集合    418

    32.7.1 游标的基础知识    418

    32.7.2 创建游标    418

    32.7.3 打开游标    418

    32.7.4 使用游标    419

    32.7.5 关闭游标    419

    32.7.6 在PHP 中使用游标    420

    32.8 小结    420

    第33 章 索引与搜索    421

    33.1 数据库索引    421

    33.1.1 主键索引    421

    33.1.2 唯一索引    422

    33.1.3 普通索引    423

    33.1.4 全文索引    424

    33.1.5 索引最佳实践    427

    33.2 基于表单的搜索    427

    33.2.1 执行简单搜索    428

    33.2.2 扩展搜索功能    429

    33.2.3 执行全文搜索    430

    33.3 小结    431

    第34 章 事务    432

    34.1 什么是事务    432

    34.2 MySQL 事务功能    432

    34.2.1 系统要求    432

    34.2.2 表格创建    433

    34.3 一个示例项目    433

    34.3.1 创建表格并添加样本数据    434

    34.3.2 执行示例事务    434

    34.3.3 使用建议    436

    34.4 使用PHP 创建事务型应用    436

    34.5 小结    437

    第35 章 导入与导出数据    438

    35.1 样本表格    438

    35.2 使用数据分隔    438

    35.3 导入数据    439

    35.3.1 使用LOAD DATA INFILE 导入数据    439

    35.3.2 使用mysqlimport 导入数据    441

    35.3.3 使用PHP 加载表数据    443

    35.4 导出数据    444

    35.5 小结    446
查看详情
12
您可能感兴趣 / 更多
PHP与MySQL程序设计 第5版
归属感:如何通过社群获得商业竞争优势
[美]大卫·斯平克斯(David Spinks) 著;颉腾文化 出品
PHP与MySQL程序设计 第5版
《世界上最大的肚子》2024百班千人暑期书目学前中班名师推荐全新正版现货速发
[美]雷米·查利普(美)柏顿·萨普瑞
PHP与MySQL程序设计 第5版
经济学通义
[美]阿门·A.阿尔钦 (美)威廉·R.艾伦 著;[美]杰里·L.乔丹 编
PHP与MySQL程序设计 第5版
数字化领导力 数字化转型锦囊,领导力精进指南 一本书掌握数字化转型领导力之道
[美]艾萨克·萨科里克 著;王磊 译;颉腾文化 出品;邓斌
PHP与MySQL程序设计 第5版
法哲学基本原理
[美]马克·C.墨菲
PHP与MySQL程序设计 第5版
雪花的故事(用照片展示雪花的秘密,为你揭开冬日奇景的奥秘)
[美]马克·卡西诺[美]乔恩·尼尔森
PHP与MySQL程序设计 第5版
杜甫传
[美]弗洛伦斯.艾思柯
PHP与MySQL程序设计 第5版
神奇的数字零:从数字0开始的极简数学史和人类发展史
[美]查尔斯·塞弗(Charles Seife)著 杨杨立汝 译
PHP与MySQL程序设计 第5版
美利坚在燃烧:20世纪60年代以来的警察暴力与黑人反抗
[美]伊丽莎白·欣顿 著 胡位钧 译
PHP与MySQL程序设计 第5版
温柔亲启
[美]艾米莉·狄金森 著;[美]艾伦·路易斯·哈特、[美]玛莎·内尔·史密斯 编
PHP与MySQL程序设计 第5版
儒教中国及其现代命运(三部曲)
[美]列文森 作者;[中]季剑青 译者
PHP与MySQL程序设计 第5版
逃家小兔成长绘本系列
[美]玛格丽特.怀兹.布朗