内容简介
第1章 PHP概述
1.1 历史
1.1.1 PHP 4
1.2.1 实用性
1.2 PHP的一般特性
1.1.2 PHP 5
1.2.3 可选择性
1.2.2 强大功能
1.3 小结
1.2.4 成本
2.1.1 获得发行包
2.1 安装
第2章 安装配置Apache和PHP
2.1.2 安装过程
2.1.3 测试安装
2.1.5 定制Windows构建
2.1.4 定制UNIX构建
2.2 配置
2.1.7 查看并下载文档
2.1.6 常见错误
2.2.1 管理PHP的配置指令
2.2.2 PHP的配置指令
2.3 小结
3.1.1 默认语法
3.1 界定PHP代码
第3章 PHP基础
3.1.3 脚本
3.1.2 短标记
3.2.2 Shell语法
3.2.1 单行C++语法
3.1.4 ASP风格
3.1.5 嵌入多个代码块
3.2 注释
3.3.1 print()
3.3 输出
3.2.3 多行C语法
3.3.3 printf()
3.3.2 echo()
3.4.1 标量数据类型
3.4 数据类型
3.3.4 sprintf()
3.4.2 复合数据类型
3.4.4 类型强制转换
3.4.3 特殊数据类型
3.4.5 类型自动转换
3.4.7 类型标识符函数
3.4.6 与类型有关的函数
3.6 变量
3.5 标识符
3.6.1 变量声明
3.6.2 变量作用域
3.6.3 PHP的超级全局变量
3.6.4 变量的变量
3.8 表达式
3.7 常量
3.8.2 操作符
3.8.1 操作数
3.9 字符串插入
3.9.2 单引号
3.9.1 双引号
3.10 控制结构
3.9.3 Heredoc
3.10.2 条件语句
3.10.1 执行控制语句
3.10.3 循环语句
3.10.4 文件包含语句
3.11 小结
3.10.5 require_once()
4.2 创建函数
4.1 调用函数
第4章 函数
4.2.1 按值传递参数
4.2.4 可选参数
4.2.3 默认参数值
4.2.2 按引用传递参数
4.2.5 从函数返回值
4.2.7 递归函数
4.2.6 嵌套函数
4.2.8 变量函数
4.3 函数库
4.4 小结
5.1 什么是数组
第5章 数组
5.2 输出数组
5.3 创建数组
5.5 增加和删除数组元素
5.4 测试数组
5.6 定位数组元素
5.7 遍历数组
5.8 确定数组大小和唯一性
5.9 数组排序
5.10 合并、拆分、接合和分解数组
5.11 其他有用的数组函数
5.12 小结
6.1.1 封装
6.1 OOP的好处
第6章 面向对象的PHP
6.1.3 多态
6.1.2 继承
6.2.2 对象
6.2.1 类
6.2 关键的OOP概念
6.2.3 字段
6.2.4 属性
6.2.5 常量
6.2.6 方法
6.4.1 构造函数
6.4 构造函数和析构函数
6.3 类型提示
6.4.2 析构函数
6.5 静态类成员
6.7 辅助函数
6.6 instanceof关键字
6.9 小结
6.8 自动加载对象
7.1 PHP不支持的高级OOP特性
第7章 高级OOP特性
7.2.1 克隆示例
7.2 对象克隆
7.2.2 _clone()方法
7.3.1 类继承
7.3 继承
7.3.2 继承和构造函数
7.4 接口
7.4.1 实现一个接口
7.4.2 实现多个接口
7.6 反射
7.5 抽象类
7.6.1 编写ReflectionClass类
7.6.2 编写ReflectionMethod类
7.6.3 编写ReflectionParameter类
7.6.4 编写ReflectionProperty类
7.7 小结
7.6.5 反射的其他用途
8.1 配置指令
第8章 错误和异常处理
8.2 错误日志
8.3 异常处理
8.3.1 为什么异常处理很方便
8.3.2 PHP的异常处理实现
8.4 小结
9.1 复杂(大括号)偏移语法
第9章 字符串和正则表达式
9.2.1 正则表达式语法(POSIX)
9.2 正则表达式
9.2.2 PHP的正则表达式函数(POSIX扩展)
9.2.3 正则表达式语法(Perl风格)
9.3 其他字符串函数
9.3.2 比较两个字符串
9.3.1 确定字符串长度
9.3.3 处理字符串大小写
9.3.4 字符串与HTML相互转换
9.3.5 正则表达式函数的替代函数
9.3.6 填充和剔除字符串
9.3.7 字符和单词计数
9.4.1 安装Validate_US
9.4 使用PEAR:Validate_US
9.5 小结
9.4.2 使用Validate_US
10.1.1 解析目录路径
10.1 了解文件和目录
第10章 处理文件和操作系统
10.1.2 文件类型和链接
10.1.3 计算文件、目录和磁盘大小
10.1.4 访问和修改时间
10.2 文件所有权和权限
10.3.3 文件末尾
10.3.2 换行
10.3 文件I/O
10.3.1 资源的概念
10.3.4 打开和关闭文件
10.3.5 读取文件
10.3.7 写入文件
10.3.6 移动文件指针
10.3.8 读取目录内容
10.4 执行Shell命令
10.5.1 清理输入
10.5 系统级程序执行
10.5.2 PHP的程序执行函数
10.6 小结
11.1 流行的PEAR包
第11章 PEAR
11.2.1 安装PEAR
11.2 安装和更新PEAR
11.3 使用PEAR包管理器
11.2.3 更新PEAR
11.2.2 PEAR和ISP公司
11.3.2 了解安装包的更多信息
11.3.1 查看安装的包
11.3.3 安装PEAR包
11.3.4 使用PEAR包
11.3.6 卸载PEAR包
11.3.5 升级PEAR包
11.4 小结
11.3.7 降级PEAR包
12.2 PHP的日期和时间库
12.1 UNIX时间戳
第12章 日期和时间
12.3.1 显示本地化的日期和时间
12.3 日期函数
12.3.4 计算当前日期后X天的日期
12.3.3 确定当前月份中的天数
12.3.2 显示网页的最新修改日期
12.3.5 创建日历
12.4.2 Date构造函数
12.4.1 Date基础
12.4 PHP 5.1
12.4.3 访问方法和修改方法
12.4.5 处理方法
12.4.4 验证函数
12.5 小结
13.1 PHP和Web表单
第13章 表单和导航提示
13.1.1 简单示例
13.1.2 向函数传递表单数据
13.1.3 处理多值表单组件
13.1.4 用PHP生成表单
13.1.5 自动选择表单数据
13.1.6 PHP、Web表单和JavaScript
13.2.1 用户友好的URL
13.2 导航提示
13.2.2 “面包屑型”轨迹
13.2.3 创建定制错误处理函数
13.3 小结
14.1 HTTP认证概念
第14章 身份认证
14.2.1 认证变量
14.2 PHP认证
14.2.2 认证方法
14.3.1 密码指派
14.3 用户登录管理
14.3.2 使用CrackLib库测试密码易猜性
14.3.3 一次性URL和密码恢复
15.1 通过HTTP协议上传文件
第15章 处理文件上传
15.2.1 PHP的文件上传/资源指令
15.2 通过PHP处理上传
15.2.2 $_FILES数组
15.2.3 PHP的文件上传函数
15.2.5 文件上传示例
15.2.4 上传错误消息
15.3.1 安装HTTP_Upload
15.3 利用PEAR:HTTP_Upload
15.3.2 了解关于上传文件的更多信息
15.3 4 上传多个文件
15.3.3 将上传的文件移动到最终目标
15.4 小结
16.1.1 DNS
16.1 DNS、服务器和服务
第16章 网络
16.1.2 服务
16.1.3 建立套接字连接
16.2.1 配置指令
16.2 邮件
16.2.3 使用额外的信息首部发送电子邮件
16.2.2 发送纯文本电子邮件
16.2.5 发送HTML格式的电子邮件
16.2.4 将电子邮件发送给多个接收者
16.2.6 发送附件
16.3 IMAP、POP3和NNTP
16.3.2 建立和关闭连接
16.3.1 需求
16.3.3 了解更多关于邮箱和邮件的信息
16.3.4 获取邮件
16.3.6 发送邮件
16.3.5 写邮件
16.3.7 邮箱管理
16.4 流
16.3.8 邮件管理
16.4.1 流包装器和上下文
16.4.2 流过滤器
16.5.1 连接一台服务器
16.5 常见网络任务
16.5.2 端口扫描器
16.5.3 子网转换器
16.5.4 测试用户带宽
16.6 小结
第17章 PHP和LDAP
17.2.1 连接到LDAP服务器
17.2 在PHP中使用LDAP
17.1 LDAP介绍
17.2.2 绑定到LDAP服务器
17.2.4 获取LDAP数据
17.2.3 关闭LDAP服务器连接
17.2.5 处理项值
17.2.7 获取属性
17.2.6 统计所获取的项
17.2.8 排序和比较LDAP项
17.2.9 处理项
17.2.10 回收内存
17.2.12 更新LDAP数据
17.2.11 插入LDAP数据
17.2.13 删除LDAP数据
17.2.14 配置函数
17.2.16 处理区分名
17.2.15 字符编码
17.2.17 错误处理
17.3 小结
18.1.1 cookie
18.1 什么是会话处理
第18章 会话处理器
18.1.3 会话处理过程
18.1.2 URL重写
18.2 配置指令
18.3.1 开始会话
18.3 关键概念
18.3.4 创建和删除会话变量
18.3.3 获取和设置会话ID
18.3.2 销毁会话
18.3.5 编码和解码会话数据
18.4.1 自动登录
18.4 实际的会话处理示例
18.4.2 最近浏览的文档索引
18.5.1 将定制会话函数加入到PHP逻辑
18.5 创建定制会话处理器
18.5.2 基于MySQL的定制会话处理器
18.6 小结
19.1 什么是模板化引擎
第19章 用Smarty模板化
19.3 安装Smarty
19.2 Smarty介绍
19.4 使用Smarty
19.5.2 变量修饰符
19.5.1 注释
19.5 Smarty的表现逻辑
19.5.3 控制结构
19.5.4 语句
19.6 创建配置文件
19.6.2 引用配置变量
19.6.1 config_load
19.7 结合Smarty使用CSS
19.8.1 处理缓存生命期
19.8 缓存
19.8.3 为每个模板创建多个缓存
19.8.2 通过is_cached()消除处理开销
19.8.4 关于缓存的结束语
19.9 小结
第20章 Web服务
20.1 为什么使用Web服务
20.2 真正简单聚合
20.2.1 RSS语法
20.2.2 MagpieRSS
20.3 SimpleXML
20.3.1 SimpleXML函数
20.3.2 SimpleXML方法
20.4 SOAP
20.4.1 NuSOAP
20.4.2 PHP 5的SOAP扩展
20.5 使用PHP Web服务和C#客户
20.6 小结
21.1 安全地配置PHP
第21章 安全PHP编程
21.1.1 安全模式
21.1.2 其他与安全有关的配置参数
21.2 隐藏配置细节
21.3 隐藏敏感数据
21.4.1 文件删除
21.4 清理用户数据
21.3.1 注意文档根目录
21.3.2 拒绝访问某些文件扩展名
21.4.2 跨网站脚本
21.4.3 清理用户输入:解决方案
21.5.1 PHP的加密函数
21.5 数据加密
21.5.2 mhash
21.5.3 MCrypt
21.6 小结
22.1.1 安装SQLite
22.1 SQLite介绍
第22章 SQLite
22.1.2 使用SQLite命令行界面
22.2.2 打开连接
22.2.1 SQLite指令
22.2 PHP的SQLite库
22.2.4 关闭连接
22.2.3 在内存中创建表
22.2.5 查询数据库
22.2.6 解析结果集
22.2.7 获取结果集细节
22.2.8 操作结果集指针
22.2.10 操作二进制数据
22.2.9 了解表模式的更多信息
22.2.11 创建和覆盖SQLite函数
22.2.12 创建聚集函数
22.3 小结
第23章 PDO介绍
23.2 使用PDO
23.1 为什么还要另一种数据库抽象层
23.2.2 PDO的数据库支持
23.2.1 安装PDO
23.2.3 连接到数据库服务器并选择数据库
23.2.4 存取属性
23.2.6 查询执行
23.2.5 错误处理
23.2.7 准备语句
23.2.8 获取数据
23.2.9 设置绑定列
23.2.10 事务
23.3 小结
24.1.1 灵活性
24.1 MySQL为什么如此流行
第24章 MySQL介绍
24.1.2 强大功能
24.1.3 灵活的许可选择
24.2 MySQL 4
24.1.4 超级活跃的用户群体
24.4.1 craigslist
24.4 著名的MySQL用户
24.3 MySQL 5
24.5 小结
24.4.3 维基百科
24.4.2 雅虎财经
25.1 PHP和MySQL许可问题
第25章 安装和配置MySQL
25.2 下载MySQL
25.1.2 Windows
25.1.1 Linux
25.3.1 Linux
25.3 安装MySQL
25.3.2 Windows
25.5.1 手工控制守护进程
25.5 启动和停止MySQL
25.4 设置MySQL管理员密码
25.5.2 自动启动和停止MySQL
25.6 配置和优化MySQL
25.6.2 配置和优化参数
25.6.1 mysqld_safe
25.6.3 my.cnf文件
25.7 小结
26.1 标准客户端选项
第26章 众多MySQL客户端
26.3 一般选项
26.2 连接选项
26.4.1 关键mysql选项
26.4 mysql
26.4.2 以交互模式使用mysql
26.4.3 查看配置变量和系统状态
26.4.4 以批处理模式使用mysql
26.4.5 有用的mysql提示
26.5 mysqladmin
26.6.2 mysqlshow
26.6.1 mysqldump
26.6 其他实用工具
26.6.4 mysqlimport
26.6.3 mysqlhotcopy
26.6.6 mysqlcheck
26.6.5 myisamchk
26.7.1 MySQL管理器
26.7 第三方客户端程序
26.7.2 phpMyAdmin
26.7.3 MySQL查询浏览器
26.7.4 Navicat
26.8 小结
27.1 存储引擎
第27章 MySQL存储引擎和数据类型
27.1.2 MyISAM
27.1.1 InnoDB
27.1.3 MEMORY
27.1.6 FEDERATED
27.1.5 BDB
27.1.4 MERGE
27.1.7 ARCHIVE
27.1.11 存储引擎FAQ
27.1.10 BLACKHOLE
27.1.8 CSV
27.1.9 EXAMPLE
27.2.1 数据类型
27.2 数据类型和属性
27.2.2 数据类型属性
27.3.1 操作数据库
27.3 操作数据库和表
27.3.2 操作表
27.3.4 INFORMATION_SCHEMA
27.3.3 修改表结构
27.4 小结
28.1 首先应当做什么
第28章 保护MySQL的安全
28.3 MySQL访问权限系统
28.2 保护mysqld守护进程
28.3.1 权限系统的工作方式
28.3.2 访问信息存储在哪里
28.4.1 CREATE USER
28.4 用户和权限管理
28.4.4 GRANT和REVOKE命令
28.4.3 RENAME USER
28.4.2 DROP USER
28.5 限制用户资源
28.4.5 查看权限
28.6.1 授权选项
28.6 保护MySQL连接
28.6.2 SSL选项
28.6.5 在my.cnf文件中存储SSL选项
28.6.4 使用启用SSL的客户端进行连接
28.6.3 启动启用SSL的MySQL服务器
28.7 小结
29.1.2 在Windows中启用MySQL扩展
29.1.1 在Linux中启用MySQL扩展
第29章 PHP的MySQL扩展
29.1 预备工作
29.2.1 建立和关闭连接
29.2 PHP的MySQL命令
29.1.3 用户权限
29.1.4 示例数据
29.2.3 保护连接信息
29.2.2 在单独的文件中存储连接信息
29.3 选择数据库
29.4 查询MySQL
29.5 获取和显示数据
29.6 插入数据
29.7 修改数据
29.8 删除数据
29.9 所选择的记录和受影响的记录
29.10 获取数据库和表的信息
29.11 获取字段信息
29.11.1 查看表属性
29.11.2 获取错误信息
29.12 辅助函数
29.13 小结
第30章 PHP的mysqli扩展
30.2.1 连接MySQL服务器
30.2 使用mysqli扩展
30.1 预备工作
30.1.1 在UNIX中启用mysqli扩展
30.1.2 在Windows中启用mysqli扩展
30.1.3 示例数据
30.2.2 连接错误报告
30.2.3 选择一个MySQL数据库
30.3.1 查询执行
30.3 查询
30.2.4 关闭MySQL连接
30.3.2 回收查询内存
30.3.3 准备结果集
30.3.4 解析结果
30.3.5 多个查询
30.3.6 准备语句
30.4 数据库事务
30.5 小结
31.1.1 存储例程的优点
31.1 应当使用存储例程吗
第31章 存储例程
31.2.1 存储例程权限表
31.2 MySQL如何实现存储例程
31.1.2 存储例程的缺点
31.2.2 创建存储例程
31.2.3 声明和设置变量
31.2.4 执行存储例程
31.2.5 多语句存储例程
31.2.6 从另一个例程中调用例程
31.2.9 查看例程状态
31.2.8 删除存储例程
31.2.7 修改存储例程
31.2.11 条件和处理器
31.2.10 查看例程的创建语法
31.3.1 创建员工奖金界面
31.3 将例程集成到Web应用程序
31.4 小结
31.3.2 获取多条记录
32.1.1 为什么使用触发器
32.1 介绍触发器
第32章 MySQL触发器
32.1.3 在事件后采取行动
32.1.2 在事件前采取行动
32.2 MySQL对触发器的支持
32.1.4 前触发器和后触发器
32.2.1 创建触发器
32.2.2 查看现有的触发器
32.2.4 删除触发器
32.2.3 修改触发器
32.2.5 级联触发器
32.3 将触发器集成到Web应用程序
32.4 小结
33.1 视图概述
第33章 视图
33.2.1 创建和执行视图
33.2 MySQL对视图的支持
33.2.2 查看视图信息
33.2.3 修改视图
33.3 将视图结合到Web应用程序中
33.2.5 更新视图
33.2.4 删除视图
33.4 小结
34.1 示例数据
第34章 实用数据库查询
34.2.2 创建一个简单表
34.2.1 安装HTML_Table
34.2 用PEAR创建表格输出
34.2.4 根据数据库数据创建表格
34.2.3 创建更可读的行输出
34.2.5 一般化输出过程
34.3 排序输出
34.4 创建分页输出
34.5 列出页码
34.6 子查询
34.6.2 用子查询确定存在性
34.6.1 用子查询完成比较
34.6.3 用子查询维护数据库
34.7.1 游标基础
34.7 游标
34.6.4 在PHP中使用子查询
34.7.4 使用游标
34.7.3 打开游标
34.7.2 创建游标
34.7.5 关闭游标
34.8 小结
34.7.6 在PHP中使用游标
35.1.1 主键索引
35.1 数据库索引
第35章 索引和搜索
35.1.2 唯一索引
35.1.3 常规索引
35.1.4 全文索引
35.2 基于表单的搜索
35.1.5 索引最佳实践
35.2.1 执行简单搜索
35.2.2 扩展搜索功能
35.2.3 执行全文搜索
35.3 小结
36.2 MySQL的事务功能
36.1 什么是事务
第36章 事务
36.2.2 表创建
36.2.1 系统需求
36.2.3 InnoDB配置参数
36.3 示例项目
36.3.2 执行示例事务
36.3.1 示例数据
36.4 用PHP构建事务应用程序
36.3.4 用法提示
36.3.3 备份和恢复InnoDB表
36.5 小结
37.2 获得合适的媒介
37.1 示例表
第37章 导入和导出数据
37.3 导出数据
37.4.1 利用LOAD DATA INFILE导入数据
37.4 导入数据
37.4.2 用mysqlimport导入
37.4.3 用PHP加载表数据
37.5 小结