当前位置:主页 > 书籍配套资源 > Web开发配套资源
《PHP和MySQL Web开发(原书第4版)》源代码

《PHP和MySQL Web开发(原书第4版)》源代码

  • 更新:2022-09-06
  • 大小:1.35 MB
  • 类别:Web开发
  • 作者:Luke、Welling;、Laura、Thomson
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

PHP和MySQL都是如今比较流行的开源技术,而且它们都是便于使用、运行速度快且功能十分强大的免费软件包,非常适用于开发面向数据库的Web应用程序。

PHP是一种服务器端解释的脚本语言,它是目前最流行的Web编程脚本语言之一。PHP可以产生动态网页。它功能强大,可以和HTML脚本融合在一起,并内置有访问数据库的功能。

MySQL是基于SQL的、完全网络化的跨平台关系型数据库系统,同时是具有客户/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性高等优点,用户可利用许多语言编写访问MySQL 数据库的程序。

本书将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析。在介绍了PHP和MySQL的一般概念后,本书还对PHP和MySQL的Web应用程序做了较全面的阐述,最后是几个经典且实用的例子。

本书是第4版,经过了全面的更新、重写和扩展,包括了PHP最新改进的特性(例如,更好的错误和异常处理),MySQL的存储过程和存储引擎,Ajax技术与Web 2.0以及Web应用程序需要注意的安全问题。
具体地说,本书由6大部分组成。

1. PHP概述
这一部分主要介绍了PHP的基本概念以及作为编程语言的基础知识。例如,PHP的数据处理机制,代码重用的实现以及面向对象特性。这对于初级编程人员来说是非常重要的。

2. MySQL概述
这一部分主要介绍了MySQL的基本概念及其基本应用。通过一些标准的SQL查询例子,详尽地介绍了MySQL的使用。

3. 电子商务和安全性的基本概念
这一部分主要介绍了电子商务的基本概念和流程,以及在电子商务站点中可能出现的安全问题。这里还给出了关于Web应用程序的安全问题。

4. PHP的高级应用
这一部分主要介绍了PHP的一些高级应用,例如,与文件系统和服务器的交互、网络和协议函数的使用以及会话控制等。这些内容都为创建实用项目奠定了基础。

5. 创建实用的PHP和MySQL项目
这一部分是本书与实际结合最为紧密的部分。它给出了关于PHP和MySQL最常见的应用技术。其中一些技术可能就是编程人员或公司最需要的,具有很高的实用和参考价值。最后给出了Ajax和Web 2.0技术的应用示例。

6. 附录部分
这一部分给出了一些关于如何在不同的操作系统平台下安装PHP和MySQL的指南,此外,还列举了一些读者可能感兴趣的Web资源。
综观本书全篇,内容广泛,风格严谨,理论和实践紧密结合,既有详细的概念说明,又有复杂而完整的实例代码,读者能够轻松地将自己所学的理论知识付诸实践。正是由于这个原因,本书适用的对象非常广泛。对于初学者来说,本书可以作为教材和参考书,对于有丰富经验的PHP和MySQL高手,本书也是一本很好的参考手册,因此本书适用于各个层次的PHP程序员。

封面图

目录

  • 对本书的赞誉
  • 译者序
  • 前言
  • 第一篇使用PHP
  • 第1章 PHP快速入门1
  • 1.1 开始之前:了解PHP2
  • 1.2 创建一个示例应用:Bob的汽车零部件
  • 商店2
  • 1.2.1 创建订单表单2
  • 1.2.2 表单处理3
  • 1.3 在HTML中嵌入PHP4
  • 1.3.1 PHP标记5
  • 1.3.2 PHP语句6
  • 1.3.3 空格6
  • 1.3.4 注释7
  • 1.4 添加动态内容7
  • 1.4.1 调用函数8
  • 1.4.2 使用date()函数8
  • 1.5 访问表单变量9
  • 1.5.1 简短、中等以及冗长风格的表单
  • 变量9
  • 1.5.2 字符串的连接11
  • 1.5.3 变量和文本12
  • 1.6 理解标识符12
  • 1.7 检查变量类型13
  • 1.7.1 PHP的数据类型13
  • 1.7.2 类型强度13
  • 1.7.3 类型转换14
  • 1.7.4 可变变量14
  • 1.8 声明和使用常量15
  • 1.9 理解变量的作用域15
  • 1.10 使用操作符16
  • 1.10.1 算术操作符16
  • 1.10.2 字符串操作符17
  • 1.10.3 赋值操作符17
  • 1.10.4 比较操作符19
  • 1.10.5 逻辑操作符20
  • 1.10.6 位操作符21
  • 1.10.7 其他操作符21
  • 1.11 计算表单总金额23
  • 1.12 理解操作符的优先级和结合性24
  • 1.13 使用可变函数25
  • 1.13.1 测试和设置变量类型25
  • 1.13.2 测试变量状态26
  • 1.13.3 变量的重解释27
  • 1.14 根据条件进行决策27
  • 1.14.1 if语句27
  • 1.14.2 代码块28
  • 1.14.3 else语句28
  • 1.14.4 elseif语句29
  • 1.14.5 switch语句30
  • 1.14.6 比较不同的条件31
  • 1.15 通过迭代实现重复动作31
  • 1.15.1 while循环33
  • 1.15.2 for和foreach循环34
  • 1.15.3 do...while循环35
  • 1.16 从控制结构或脚本中跳出35
  • 1.17 使用可替换的控制结构语法36
  • 1.18 使用declare36
  • 1.19 下一章36
  • 第2章 数据的存储与检索37
  • 2.1 保存数据以便后期使用37
  • 2.2 存储和检索Bob的订单37
  • 2.3 文件处理38
  • 2.4 打开文件38
  • 2.4.1 选择文件模式39
  • 2.4.2 使用fopen()打开文件39
  • 2.4.3 通过FTP或HTTP打开文件41
  • 2.4.4 解决打开文件时可能遇到的问题41
  • 2.5 写文件43
  • 2.5.1 fwrite()的参数44
  • 2.5.2 文件格式44
  • 2.6 关闭文件45
  • 2.7 读文件47
  • 2.7.1 以只读模式打开文件:fopen()47
  • 2.7.2 知道何时读完文件:feof()48
  • 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv()48
  • 2.7.4 读取整个文件:readfile()、fpassthru()和file()49
  • 2.7.5 读取一个字符:fgetc()50
  • 2.7.6 读取任意长度:fread()50
  • 2.8 使用其他有用的文件函数50
  • 2.8.1 查看文件是否存在:
  • file_exists()51
  • 2.8.2 确定文件大小:filesize()51
  • 2.8.3 删除一个文件:unlink()51
  • 2.8.4 在文件中定位:rewind()、fseek()
  • 和ftell()51
  • 2.9 文件锁定52
  • 2.10 更好的方式:数据库管理系统53
  • 2.10.1 使用普通文件的几个问题53
  • 2.10.2RDBMS是如何解决这些问题的54
  • 2.11 进一步学习54
  • 2.12 下一章54
  • 第3章 使用数组55
  • 3.1 什么是数组55
  • 3.2 数字索引数组56
  • 3.2.1 数字索引数组的初始化56
  • 3.2.2 访问数组的内容57
  • 3.2.3 使用循环访问数组57
  • 3.3 使用不同索引的数组58
  • 3.3.1 初始化关联数组58
  • 3.3.2 访问数组元素58
  • 3.3.3 使用循环语句58
  • 3.4 数组操作符60
  • 3.5 多维数组60
  • 3.6 数组排序63
  • 3.6.1 使用sort()函数63
  • 3.6.2 使用asort()函数和ksort()函数
  • 对关联数组排序64
  • 3.6.3 反向排序64
  • 3.7 多维数组的排序64
  • 3.7.1 用户定义排序64
  • 3.7.2 反向用户排序66
  • 3.8 对数组进行重新排序66
  • 3.8.1 使用shuffle()函数66
  • 3.8.2 使用array_reverse()函数68
  • 3.9 从文件载入数组68
  • 3.10 执行其他数组操作71
  • 3.10.1 在数组中浏览:each()、
  • current()、reset()、end()、next()、pos()和prev()71
  • 3.10.2 对数组的每一个元素应用任何函数:array_walk()72
  • 3.10.3 统计数组元素个数:count()、sizeof()和array_count_ values()73
  • 3.10.4 将数组转换成标量变量:
  • extract()74
  • 3.11 进一步学习75
  • 3.12 下一章75
  • 第4章 字符串操作与正则表达式76
  • 4.1 创建一个示例应用程序:智能表单
  • 邮件76
  • 4.2 字符串的格式化78
  • 4.2.1 字符串的整理:chop()、ltrim()
  • 和trim()78
  • 4.2.2 格式化字符串以便显示78
  • 4.2.3 格式化字符串以便存储:addslashes()
  • 和stripslashes()81
  • 4.3 用字符串函数连接和分割字符串83
  • 4.3.1 使用函数explode()、implode()
  • 和join()83
  • 4.3.2 使用strtok()函数84
  • 4.3.3 使用substr()函数84
  • 4.4 字符串的比较85
  • 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp()85
  • 4.4.2 使用strlen()函数测试字符串的
  • 长度86
  • 4.5 使用字符串函数匹配和替换子字符串86
  • 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和
  • stristr()86
  • 4.5.2 查找子字符串的位置:strpos()、strrpos()87
  • 4.5.3 替换子字符串:str_replace()、substr_replace()88
  • 4.6 正则表达式的介绍89
  • 4.6.1 基础知识89
  • 4.6.2 字符集和类89
  • 4.6.3 重复90
  • 4.6.4 子表达式91
  • 4.6.5 子表达式计数91
  • 4.6.6 定位到字符串的开始或末尾91
  • 4.6.7 分支92
  • 4.6.8 匹配特殊字符92
  • 4.6.9 特殊字符一览92
  • 4.6.10 在智能表单中应用93
  • 4.7 用正则表达式查找子字符串93
  • 4.8 用正则表达式替换子字符串94
  • 4.9 使用正则表达式分割字符串94
  • 4.10 进一步学习95
  • 4.11 下一章95
  • 第5章 代码重用与函数编写96
  • 5.1 代码重用的好处96
  • 5.1.1 成本96
  • 5.1.2 可靠性97
  • 5.1.3 一致性97
  • 5.2 使用require()和include()函数97
  • 5.2.1 文件扩展名和require()函数97
  • 5.2.2 使用require()制作Web站点的
  • 模板99
  • 5.2.3 使用auto_prepend_file和auto_append_file103
  • 5.3 在PHP中使用函数104
  • 5.3.1 调用函数104
  • 5.3.2 调用未定义的函数105
  • 5.3.3 理解字母大小写和函数名称106
  • 5.4 理解为什么要定义自己的函数106
  • 5.5 了解基本的函数结构106
  • 5.6 使用参数108
  • 5.7 理解作用域110
  • 5.8 参数的引用传递和值传递112
  • 5.9 使用Return关键字113
  • 5.10 实现递归115
  • 5.11 进一步学习116
  • 5.12 下一章116
  • 第6章 面向对象的PHP117
  • 6.1 理解面向对象的概念117
  • 6.1.1 类和对象117
  • 6.1.2 多态性118
  • 6.1.3 继承119
  • 6.2 在PHP中创建类、属性和操作119
  • 6.2.1 类的结构119
  • 6.2.2 构造函数120
  • 6.2.3 析构函数120
  • 6.3 类的实例化121
  • 6.4 使用类的属性121
  • 6.5 使用private和public关键字控制
  • 访问123
  • 6.6 类操作的调用124
  • 6.7 在PHP中实现继承124
  • 6.7.1 通过继承使用private和protected
  • 访问修饰符控制可见性125
  • 6.7.2 重载126
  • 6.7.3 使用final关键字禁止继承和重载128
  • 6.7.4 理解多重继承128
  • 6.7.5 实现接口129
  • 6.8 类的设计130
  • 6.9 编写类代码130
  • 6.10 理解PHP面向对象的高级功能138
  • 6.10.1 使用Per-Class常量138
  • 6.10.2 实现静态方法138
  • 6.10.3 检查类的类型和类型提示139
  • 6.10.4 延迟静态绑定139
  • 6.10.5 克隆对象140
  • 6.10.6 使用抽象类140
  • 6.10.7 使用__call()重载方法141
  • 6.10.8 使用__autoload()方法141
  • 6.10.9 实现迭代器和迭代142
  • 6.10.10 将类转换成字符串144
  • 6.10.11 使用Reflection(反射)API144
  • 6.11 下一章145
  • 第7章错误和异常处理146
  • 7.1 异常处理的概念146
  • 7.2 Exception类148
  • 7.3 用户自定义异常148
  • 7.4 Bob的汽车零部件商店应用程序的异常151
  • 7.5 异常和PHP的其他错误处理机制154
  • 7.6 进一步学习154
  • 7.7 下一章154
  • 第二篇使用MySQL
  • 第8章 设计Web数据库155
  • 8.1 关系数据库的概念155
  • 8.1.1 表格156
  • 8.1.2 列156
  • 8.1.3 行156
  • 8.1.4 值156
  • 8.1.5 键156
  • 8.1.6 模式157
  • 8.1.7 关系158
  • 8.2 设计Web数据库158
  • 8.2.1 考虑要建模的实际对象158
  • 8.2.2 避免保存冗余数据159
  • 8.2.3 使用原子列值160
  • 8.2.4 选择有意义的键161
  • 8.2.5 考虑需要询问数据库的问题161
  • 8.2.6 避免多个空属性的设计161
  • 8.2.7 表格类型的总结162
  • 8.3 Web数据库架构162
  • 8.4 进一步学习163
  • 8.5 下一章163
  • 第9章 创建Web数据库164
  • 9.1 使用MySQL监视程序165
  • 9.2 登录到MySQL165
  • 9.3 创建数据库和用户166
  • 9.4 设置用户与权限167
  • 9.5 MySQL权限系统的介绍167
  • 9.5.1 最少权限原则167
  • 9.5.2 创建用户:GRANT命令167
  • 9.5.3 权限的类型和级别169
  • 9.5.4 REVOKE命令170
  • 9.5.5 使用GRANT和REVOKE的例子170
  • 9.6 创建一个Web用户171
  • 9.7 使用正确的数据库172
  • 9.8 创建数据库表172
  • 9.8.1 理解其他关键字的意思174
  • 9.8.2 理解列的类型174
  • 9.8.3 用SHOW和DESCRIBE来查看
  • 数据库176
  • 9.8.4 创建索引177
  • 9.9 理解MySQL的标识符177
  • 9.10 选择列数据类型178
  • 9.10.1 数字类型178
  • 9.10.2 日期和时间类型179
  • 9.10.3 字符串类型180
  • 9.11 进一步学习181
  • 9.12 下一章181
  • 第10章 使用MySQL数据库182
  • 10.1 SQL是什么182
  • 10.2 在数据库中插入数据183
  • 10.3 从数据库中获取数据185
  • 10.3.1 获取满足特定条件的数据186
  • 10.3.2 从多个表中获取数据187
  • 10.3.3 以特定的顺序获取数据191
  • 10.3.4 分组与合计数据192
  • 10.3.5 选择要返回的行194
  • 10.3.6 使用子查询194
  • 10.4 更新数据库记录196
  • 10.5 创建后修改表197
  • 10.6 删除数据库中的记录198
  • 10.7 表的删除199
  • 10.8 删除整个数据库199
  • 10.9 进一步学习199
  • 10.10 下一章199
  • 第11章 使用PHP从Web访问MySQL
  • 数据库200
  • 11.1 Web数据库架构的工作原理200
  • 11.2 从Web查询数据库的基本步骤203
  • 11.2.1 检查与过滤用户输入数据203
  • 11.2.2 建立一个连接204
  • 11.2.3 选择使用的数据库205
  • 11.2.4 查询数据库206
  • 11.2.5 检索查询结果206
  • 11.2.6 从数据库断开连接207
  • 11.3 将新信息放入数据库208
  • 11.4 使用Prepared语句211
  • 11.5 使用PHP与数据库交互的其他接口212
  • 11.6 进一步学习215
  • 11.7 下一章215
  • 第12章 MySQL高级管理216
  • 12.1 深入理解权限系统216
  • 12.1.1 user表217
  • 12.1.2 db表和host表218
  • 12.1.3 tables_priv表、columns_priv
  • 表和procs_priv表219
  • 12.1.4 访问控制:MySQL如何使用
  • grant表220
  • 12.1.5 更新权限:修改什么时候生效221
  • 12.2 提高MySQL数据库的安全性221
  • 12.2.1 从操作系统角度来保护MySQL221
  • 12.2.2 密码222
  • 12.2.3 用户权限222
  • 12.2.4 Web问题223
  • 12.3 获取更多关于数据库的信息223
  • 12.3.1 使用SHOW获取信息223
  • 12.3.2 使用DESCRIBE获取关于列的信息225
  • 12.3.3 用EXPLAIN理解查询操作的工作
  • 过程225
  • 12.4 数据库的优化229
  • 12.4.1 设计优化229
  • 12.4.2 权限229
  • 12.4.3 表的优化229
  • 12.4.4 使用索引230
  • 12.4.5 使用默认值230
  • 12.4.6 其他技巧230
  • 12.5 备份MySQL数据库230
  • 12.6 恢复MySQL数据库231
  • 12.7 实现复制231
  • 12.7.1 设置主服务器232
  • 12.7.2 执行初始的数据传输232
  • 12.7.3 设置一个/多个从服务器233
  • 12.8 进一步学习233
  • 12.9 下一章233
  • 第13章 MySQL高级编程234
  • 13.1 LOAD DATA INFILE语句234
  • 13.2 存储引擎234
  • 13.3 事务235
  • 13.3.1 理解事务的定义235
  • 13.3.2 通过InnoDB使用事务236
  • 13.4 外键237
  • 13.5 存储过程238
  • 13.5.1 基本示例238
  • 13.5.2 局部变量240
  • 13.5.3 游标和控制结构241
  • 13.6 进一步学习244
  • 13.7 下一章244
  • 第三篇电子商务与安全性
  • 第14章 运营一个电子商务网站245
  • 14.1 我们要实现什么目标245
  • 14.2 考虑电子商务网站的类型245
  • 14.2.1 使用在线说明书公布信息246
  • 14.2.2 接收产品或服务的订单247
  • 14.2.3 提供服务和数字产品250
  • 14.2.4 为产品或服务增值251
  • 14.2.5 减少成本251
  • 14.3 理解风险和威胁252
  • 14.3.1 网络黑客252
  • 14.3.2 不能招揽足够的生意253
  • 14.3.3 计算机硬件故障253
  • 14.3.4 电力、通信、网络或运输故障253
  • 14.3.5 广泛的竞争253
  • 14.3.6 软件错误254
  • 14.3.7 不断变化的政府政策和税收254
  • 14.3.8 系统容量限制254
  • 14.4 选择一个策略254
  • 14.5 下一章254
  • 第15章 电子商务的安全问题255
  • 15.1 信息的重要程度255
  • 15.2 安全威胁256
  • 15.2.1 机密数据的泄露256
  • 15.2.2 数据丢失和数据破坏257
  • 15.2.3 数据修改258
  • 15.2.4 拒绝服务258
  • 15.2.5 软件错误259
  • 15.2.6 否认 260
  • 15.3 易用性、性能、成本和安全性261
  • 15.4 建立一套安全政策261
  • 15.5 身份验证原则262
  • 15.6 加密技术基础263
  • 15.6.1 私有密钥加密264
  • 15.6.2 公有密钥加密264
  • 15.6.3 数字签名265
  • 15.7 数字证书265
  • 15.8 安全的Web服务器266
  • 15.9 审计与日志记录267
  • 15.10 防火墙267
  • 15.11 备份数据268
  • 15.11.1 备份常规文件268
  • 15.11.2 备份与恢复MySQL数据库268
  • 15.12 自然环境的安全性268
  • 15.13 下一章269
  • 第16章 Web应用的安全270
  • 16.1 处理安全性问题的策略270
  • 16.1.1 以正确心态为开始270
  • 16.1.2 安全性和可用性之间的平衡271
  • 16.1.3安全监视271
  • 16.1.4基本方法271
  • 16.2 识别所面临的威胁271
  • 16.2.1 访问或修改敏感数据272
  • 16.2.2 数据丢失或破坏272
  • 16.2.3 拒绝服务272
  • 16.2.4 恶意代码注入272
  • 16.2.5 服务器被攻破273
  • 16.3 了解与我们“打交道”的用户273
  • 16.3.1 破解人员273
  • 16.3.2 受影响机器的未知情用户274
  • 16.3.3 对公司不满的员工274
  • 16.3.4 硬件被盗274
  • 16.3.5 我们自身274
  • 16.4 代码的安全性274
  • 16.4.1 过滤用户输入274
  • 16.4.2 转义输出278
  • 16.4.3 代码组织279
  • 16.4.4 代码自身的问题280
  • 16.4.5 文件系统因素281
  • 16.4.6 代码稳定性和缺陷281
  • 16.4.7 执行引号和exec282
  • 16.5 Web服务器和PHP的安全性283
  • 16.5.1 保持软件的更新283
  • 16.5.2 查看php.ini文件284
  • 16.5.3 Web服务器配置284
  • 16.5.4 Web应用的商业主机服务285
  • 16.6 数据库服务器的安全性286
  • 16.6.1 用户和权限系统286
  • 16.6.2 发送数据至服务器287
  • 16.6.3 连接服务器287
  • 16.6.4 运行服务器288
  • 16.7 保护网络288
  • 16.7.1 安装防火墙288
  • 16.7.2 使用隔离区域(DMZ)288
  • 16.7.3 应对DoS和DDoS攻击289
  • 16.8 计算机和操作系统的安全性289
  • 16.8.1 保持操作系统的更新289
  • 16.8.2 只运行必需的软件290
  • 16.8.3 服务器的物理安全性 290
  • 16.9 灾难计划290
  • 16.10 下一章291
  • 第17章 使用PHP和MySQL实现身份验证292
  • 17.1 识别访问者292
  • 17.2 实现访问控制293
  • 17.2.1 保存密码294
  • 17.2.2 密码的加密296
  • 17.2.3 保护多个网页298
  • 17.3 使用基本身份验证298
  • 17.4 在PHP中使用基本身份验证299
  • 17.5 在Apache的.htaccess文件中使用基
  • 本身份验证301
  • 17.6 使用mod_auth_mysql身份验证303
  • 17.6.1 安装mod_auth_mysql304
  • 17.6.2 使用mod_auth_mysql304
  • 17.7 创建自定义身份验证305
  • 17.8 进一步学习306
  • 17.9 下一章306
  • 第18章 使用PHP和MySQL实现安全
  • 事务307
  • 18.1 提供安全的事务处理307
  • 18.1.1 用户机器308
  • 18.1.2 Internet309
  • 18.1.3 我们的系统309
  • 18.2 使用加密套接字层(SSL)310
  • 18.3 屏蔽用户的输入312
  • 18.4 提供安全存储313
  • 18.5 存储信用卡号码314
  • 18.6 在PHP中使用加密技术314
  • 18.6.1 安装GPG315
  • 18.6.2 测试GPG317
  • 18.7 进一步学习321
  • 18.8 下一章321
  • 第四篇PHP的高级技术
  • 第19章 与文件系统和服务器的交互323
  • 19.1 文件上传323
  • 19.1.1 文件上传的HTML代码324
  • 19.1.2 编写处理文件的PHP325
  • 19.1.3 避免常见上传问题329
  • 19.2 使用目录函数329
  • 19.2.1 从目录读取329
  • 19.2.2 获得当前目录的信息332
  • 19.2.3 创建和删除目录333
  • 19.3 与文件系统的交互333
  • 19.3.1 获取文件信息333
  • 19.3.2 更改文件属性336
  • 19.3.3 创建、删除和移动文件336
  • 19.4 使用程序执行函数337
  • 19.5 与环境变量交互:getenv()和
  • putenv()339
  • 19.6 进一步学习339
  • 19.7 下一章339
  • 第20章 使用网络函数和协议函数340
  • 20.1 了解可供使用的协议340
  • 20.2 发送和读取电子邮件340
  • 20.3 使用其他Web站点的数据341
  • 20.4 使用网络查找函数343
  • 20.5 备份或镜像一个文件347
  • 20.5.1 使用FTP备份或镜像一个文件347
  • 20.5.2 上传文件353
  • 20.5.3 避免超时353
  • 20.5.4 使用其他的FTP函数353
  • 20.6 进一步学习354
  • 20.7 下一章354
  • 第21章 日期和时间的管理355
  • 21.1 在PHP中获取日期和时间355
  • 21.1.1 使用date()函数355
  • 21.1.2 使用UNIX时间戳356
  • 21.1.3 使用getdate()函数357
  • 21.1.4 使用checkdate()函数检验日期
  • 有效性358
  • 21.1.5 格式化时间戳358
  • 21.2 在PHP日期格式和MySQL日期格式之间
  • 进行转换360
  • 21.3 在PHP中计算日期362
  • 21.4 在MySQL中计算日期363
  • 21.5 使用微秒364
  • 21.6 使用日历函数364
  • 21.7 进一步学习365
  • 21.8 下一章365
  • 第22章 创建图像366
  • 22.1 在PHP中设置图像支持366
  • 22.2 理解图像格式367
  • 22.2.1 JPEG367
  • 22.2.2 PNG367
  • 22.2.3 WBMP368
  • 22.2.4 GIF368
  • 22.3 创建图像368
  • 22.3.1 创建一个背景图像369
  • 22.3.2 在图像上绘图或打印文本369
  • 22.3.3 输出最终图形371
  • 22.3.4 清理372
  • 22.4 在其他页面中使用自动生成的图像372
  • 22.5 使用文本和字体创建图像372
  • 22.5.1 创建基本画布375
  • 22.5.2 将文本调整到适合按钮375
  • 22.5.3 放置文本378
  • 22.5.4 将文本写到按钮上378
  • 22.5.5 完成378
  • 22.6 绘制图像与用图表描绘数据379
  • 22.7 使用其他图像函数386
  • 22.8 进一步学习386
  • 22.9 下一章386
  • 第23章 在PHP中使用会话控制387
  • 23.1 什么是会话控制387
  • 23.2 理解基本的会话功能387
  • 23.2.1 什么是cookie388
  • 23.2.2 通过PHP设置cookie388
  • 23.2.3 在会话中使用cookie388
  • 23.2.4 存储会话 ID389
  • 23.3 实现简单的会话389
  • 23.3.1 开始一个会话389
  • 23.3.2 注册一个会话变量390
  • 23.3.3 使用会话变量390
  • 23.3.4 注销变量与销毁会话390
  • 23.4 创建一个简单的会话例子391
  • 23.5 配置会话控制392
  • 23.6 通过会话控制实现身份验证393
  • 23.7 进一步学习398
  • 23.8 下一章398
  • 第24章 其他有用的特性399
  • 24.1 使用eval()函数对字符串求值399
  • 24.2 终止执行:die()和exit()399
  • 24.3 序列化变量和对象400
  • 24.4 获取PHP环境信息401
  • 24.4.1 找到所加载的PHP扩展部件401
  • 24.4.2 识别脚本所有者402
  • 24.4.3 确定脚本最近修改时间402
  • 24.5 暂时改变运行时环境402
  • 24.6 源代码加亮403
  • 24.7 在命令行中使用PHP404
  • 24.8 下一章404
  • 第五篇 创建实用的PHP和MySQL项目
  • 第25章 在大型项目中使用PHP和
  • MySQL405
  • 25.1 在Web开发中应用软件工程405
  • 25.2 规划和运行Web应用程序项目406
  • 25.3 重用代码406
  • 25.4 编写可维护代码407
  • 25.4.1 编码标准407
  • 25.4.2 分解代码410
  • 25.4.3 使用标准的目录结构410
  • 25.4.4 文档化和共享内部函数410
  • 25.5 实现版本控制411
  • 25.6 选择一个开发环境412
  • 25.7 项目的文档化412
  • 25.8 建立原型413
  • 25.9 将逻辑和内容分离413
  • 25.10 优化代码414
  • 25.10.1 使用简单优化414
  • 25.10.2 使用Zend产品414
  • 25.11 测试415
  • 25.12 进一步学习415
  • 25.13 下一章416
  • 第26章 调试417
  • 26.1 编程错误417
  • 26.1.1 语法错误417
  • 26.1.2 运行时错误418
  • 26.1.3 逻辑错误423
  • 26.2 使用变量帮助调试424
  • 26.3 错误报告级别426
  • 26.4 改变错误报告设置427
  • 26.5 触发自定义错误428
  • 26.6 巧妙地处理错误428
  • 26.7 下一章431
  • 第27章 建立用户身份验证机制和个性化
  • 设置432
  • 27.1 解决方案的组成432
  • 27.1.1 用户识别和个性化设置432
  • 27.1.2 保存书签433
  • 27.1.3 推荐书签433
  • 27.2 解决方案概述433
  • 27.3 实现数据库435
  • 27.4 实现基本的网站436
  • 27.5 实现用户身份验证438
  • 27.5.1 注册用户438
  • 27.5.2 登录443
  • 27.5.3 登出447
  • 27.5.4 修改密码447
  • 27.5.5 重设遗忘的密码449
  • 27.6 实现书签的存储和检索454
  • 27.6.1 添加书签454
  • 27.6.2 显示书签456
  • 27.6.3 删除书签457
  • 27.7 实现书签推荐459
  • 27.8 考虑可能的扩展462
  • 27.9 下一章462
  • 第28章 创建一个购物车463
  • 28.1 解决方案的组成463
  • 28.1.1 创建一个在线目录463
  • 28.1.2 在用户购买商品的时候记录
  • 购买行为464
  • 28.1.3 实现一个付款系统464
  • 28.1.4 创建一个管理界面464
  • 28.2 解决方案概述465
  • 28.3 实现数据库467
  • 28.4 实现在线目录469
  • 28.4.1 列出目录470
  • 28.4.2 列出一个目录中的所有图书472
  • 28.4.3 显示图书详细信息474
  • 28.5 实现购物车475
  • 28.5.1 使用show_cart.php脚本476
  • 28.5.2 浏览购物车479
  • 28.5.3 将物品添加到购物车481
  • 28.5.4 保存更新后的购物车483
  • 28.5.5 打印标题栏摘要483
  • 28.5.6 结账484
  • 28.6 实现付款490
  • 28.7 实现一个管理界面491
  • 28.8 扩展该项目498
  • 28.9 使用一个已有系统498
  • 28.10 下一章499
  • 第29章 创建一个基于Web的电子邮件
  • 服务系统500
  • 29.1 解决方案的组成500
  • 29.1.1 电子邮件协议:POP3和IMAP500
  • 29.1.2 PHP对POP3和IMAP的支持501
  • 29.2 解决方案概述502
  • 29.3 建立数据库503
  • 29.4 了解脚本架构504
  • 29.5 登录与登出510
  • 29.6 建立账户513
  • 29.6.1 创建一个新账户515
  • 29.6.2 修改已有账户516
  • 29.6.3 删除账户516
  • 29.7 阅读邮件517
  • 29.7.1 选择账户517
  • 29.7.2 查看邮箱内容519
  • 29.7.3 阅读邮件消息522
  • 29.7.4 查看消息标题525
  • 29.7.5 删除邮件525
  • 29.8 发送邮件526
  • 29.8.1 发送一则新消息526
  • 29.8.2 回复或转发邮件528
  • 29.9 扩展这个项目530
  • 29.10 下一章530
  • 第30章 创建一个邮件列表管理器531
  • 30.1 解决方案的组成531
  • 30.1.1 建立列表和订阅者数据库532
  • 30.1.2 上载新闻信件532
  • 30.1.3 发送带附件的邮件532
  • 30.2 解决方案概述533
  • 30.3 建立数据库534
  • 30.4 定义脚本架构536
  • 30.5 实现登录543
  • 30.5.1 新账户的创建543
  • 30.5.2 登录546
  • 30.6 用户函数的实现548
  • 30.6.1 查看列表548
  • 30.6.2 查看邮件列表信息553
  • 30.6.3 查看邮件列表存档555
  • 30.6.4 订阅与取消订阅556
  • 30.6.5 更改账户设置557
  • 30.6.6 更改密码558
  • 30.6.7 登出559
  • 30.7 管理功能的实现560
  • 30.7.1 创建新的邮件列表560
  • 30.7.2 上载新的新闻信件562
  • 30.7.3 多文件上载的处理565
  • 30.7.4 预览新闻信件569
  • 30.7.5 发送邮件570
  • 30.8 扩展这个项目576
  • 30.9 下一章576
  • 第31章 创建一个Web论坛577
  • 31.1 理解流程577
  • 31.2 解决方案的组成577
  • 31.3 解决方案概述579
  • 31.4 数据库的设计579
  • 31.5 查看文章的树形结构581
  • 31.5.1 展开和折叠583
  • 31.5.2 显示文章585
  • 31.5.3 使用treenode类586
  • 31.6 查看单个的文章592
  • 31.7 添加新文章593
  • 31.8 添加扩充600
  • 31.9 使用一个已有的系统600
  • 31.10 下一章600
  • 第32章 生成PDF格式的个性化文档601
  • 32.1 项目概述601
  • 32.2 解决方案的组成604
  • 32.2.1 问题与回答系统605
  • 32.2.2 文档生成软件605
  • 32.3 解决方案概述607
  • 32.3.1 提问607
  • 32.3.2 给答题评分609
  • 32.3.3 生成RTF证书611
  • 32.3.4 从模板生成PDF证书615
  • 32.3.5 使用PDFlib生成PDF文档618
  • 32.3.6 使用PDFlib的一个“Hello World”
  • 程序618
  • 32.3.7 用PDFlib生成证书621
  • 32.4 处理标题的问题628
  • 32.5 扩展该项目629
  • 32.6 下一章629
  • 第33章 使用XML和SOAP来连接Web
  • 服务630
  • 33.1 项目概述:使用XML和Web服务630
  • 33.1.1 理解XML631
  • 33.1.2 理解Web服务633
  • 33.2 解决方案的组成635
  • 33.2.1 使用Amazon的Web服务接口635
  • 33.2.2XML的解析:REST响应636
  • 33.2.3 在PHP中使用SOAP636
  • 33.2.4 缓存636
  • 33.3 解决方案概述636
  • 33.3.1 核心应用程序640
  • 33.3.2 显示特定种类的图书646
  • 33.3.3 获得一个AmazonResultSet类647
  • 33.3.4 使用REST发送和接收请求656
  • 33.3.5 使用SOAP发送和接收请求662
  • 33.3.6 缓存请求返回的数据664
  • 33.3.7 创建购物车666
  • 33.3.8 到Amazon付账670
  • 33.4 安装项目代码670
  • 33.5 扩展这个项目671
  • 33.6 进一步学习671
  • 第34章 使用Ajax构建Web 2.0应用672
  • 34.1 Ajax是什么672
  • 34.1.1 HTTP请求和响应673
  • 34.1.2 DHTML和XHTML673
  • 34.1.3 级联样式单674
  • 34.1.4 客户端编程675
  • 34.1.5 服务器端编程675
  • 34.1.6 XML和XSLT676
  • 34.2 Ajax基础676
  • 34.2.1 XMLHTTPRequest对象676
  • 34.2.2 与服务器通信678
  • 34.2.3 处理服务器响应679
  • 34.2.4 整合应用681
  • 34.3 在以前的项目添加Ajax元素683
  • 34.4进一步学习694
  • 34.4.1 进一步了解文档对象模型
  • (DOM)694
  • 34.4.2 Ajax应用可用的JavaScript
  • 函数库694
  • 34.4.3 Ajax开发人员网站695
  • 附录
  • 附录A 安装PHP及MySQL697
  • 附录B Web资源712

资源下载

资源下载地址1:https://pan.baidu.com/s/1gEwBwnqxX4KJbz4lnZxfKA

相关资源

网友留言