PHP语言和MySQL数据库这两种开源技术已经成为开发Web应用的最佳组合。Web 2.0为它们提供了更广阔的天地。
本书是久负盛名的经典著作,以内容全面、讲解翔实而著称。书中对主题的选取和组织从实用出发,在讲述知识之外还加入了作者多年积累的宝贵实战经验,并提供了500多个可以直接用于实际项目的代码示例,充分体现了作者深厚的开发功力。这一版不仅对原有章节进行了全面的修订、更新和改进,还加入了PHP 6和MySQL最新版本中的新特性,包括如何利用国际化和本地化开源工具创建面向全世界的Web网站,开发强大Web应用的利器MVC模式与Zend框架。
本书不仅适合初中级程序员快速入门提高,也是有经验程序员必备的参考书。
作者为本书专门开设了配套网站,也可以通过Twitter()了解更多信息。
......(更多)
W. Jason Gilmore,世界知名的软件技术专家,CodeMash技术大会创始人之一,MySQL全球技术大会顾问委员会成员。他曾负责Apress出版公司开源图书出版项目,开发了大量PHP和MySQL应用程序,并在各大专业媒体发表了众多有影响的技术文章。他的个人网站是。
......(更多)
第1章 php概述 1
1.1 历史 1
1.1.1 php 4 2
1.1.2 php 5 3
1.1.3 php 6 4
1.2 一般语言特性 4
1.2.1 实用性 4
1.2.2 强大功能 5
1.2.3 可能性 5
1.2.4 成本 6
1.3 小结 6
第2章 环境配置 7
2.1 安装的前提条件 7
2.1.1 下载apache 8
2.1.2 下载php 8
2.1.3 获得文档 9
2.2 在linux上安装apache和php 9
2.3 在windows上安装apache和php 11
2.4 在windows上安装iis和php 12
2.4.1 安装iis和php 13
2.4.2 配置fastcgi来管理php进程 13
2.5 测试安装 14
2.6 配置php 16
2.6.1 在linux上构建时配置php 16
2.6.2 定制windows构建 16
2.7 运行时配置 16
2.7.1 管理php的配置指令 17
2.7.2 php的配置指令 18
2.8 选择代码编辑器 29
2.8.1 adobe dreamweaver cs3 29
2.8.2 notepad++ 30
2.8.3 pdt 30
2.8.4 zend studio 30
2.9 选择web托管服务提供商 31
2.10 小结 32
第3章 php基础 33
3.1 在web页面中嵌入php代码 33
3.1.1 默认语法 33
3.1.2 短标记 34
3.1.3 脚本 34
3.1.4 asp风格 35
3.1.5 嵌入多个代码块 35
3.2 为代码添加注释 35
3.2.1 单行c++语法 35
3.2.2 shell语法 36
3.2.3 多行c语法 36
3.3 向浏览器输出数据 36
3.3.1 print()语句 37
3.3.2 printf()语句 38
3.3.3 sprintf() 39
3.4 php支持的数据类型 39
3.4.1 标量数据类型 39
3.4.2 复合数据类型 40
3.4.3 使用类型强制转换实现数据类型间的转换 41
3.4.4 类型自动转换 42
3.4.5 与类型有关的函数 43
3.4.6 类型标识符函数 43
3.5 标识符 44
3.6 变量 45
3.6.1 变量声明 45
3.6.2 变量作用域 46
3.6.3 php的超级全局变量 49
3.6.4 变量的变量 52
3.7 常量 53
3.8 表达式 53
3.8.1 操作数 53
3.8.2 操作符 54
3.9 字符串插入 58
3.9.1 双引号 58
3.9.2 单引号 59
3.9.3 heredoc 60
3.10 控制结构 60
3.10.1 条件语句 61
3.10.2 循环语句 63
3.10.3 文件包含语句 67
3.11 小结 69
第4章 函数 70
4.1 调用函数 70
4.2 创建函数 71
4.2.1 按值传递参数 71
4.2.2 按引用传递参数 72
4.2.3 默认参数值 73
4.2.4 从函数返回值 74
4.2.5 递归函数 75
4.3 函数库 77
4.4 小结 78
第5章 数组 79
5.1 什么是数组 79
5.2 创建数组 80
5.2.1 用array()创建数组 81
5.2.2 用list()提取数组 81
5.2.3 用预定义的值范围填充数组 82
5.2.4 测试数组 83
5.3 添加和删除数组元素 84
5.3.1 在数组头添加元素 84
5.3.2 在数组尾添加元素 84
5.3.3 从数组头删除值 84
5.3.4 从数组尾删除元素 85
5.4 定位数组元素 85
5.4.1 搜索数组 85
5.4.2 获取数组键 86
5.4.3 获取数组值 86
5.5 遍历数组 87
5.5.1 获取当前数组键 87
5.5.2 获取当前数组值 87
5.5.3 获取当前数组键和值 88
5.5.4 移动数组指针 88
5.5.5 向函数传递数组值 89
5.6 确定数组的大小和唯一性 90
5.6.1 确定数组的大小 90
5.6.2 统计数组元素出现的频度 91
5.6.3 确定唯一的数组元素 91
5.7 数组排序 91
5.7.1 逆置数组元素顺序 91
5.7.2 置换数组键和值 92
5.7.3 数组排序 92
5.8 合并、拆分、接合和分解数组 96
5.8.1 合并数组 96
5.8.2 递归追加数组 97
5.8.3 连接两个数组 97
5.8.4 拆分数组 97
5.8.5 接合数组 98
5.8.6 求数组的交集 99
5.8.7 求关联数组的交集 100
5.8.8 求数组的差集 100
5.8.9 求关联数组的差集 100
5.9 其他有用的数组函数 101
5.9.1 返回一组随机的键 101
5.9.2 随机洗牌数组元素 101
5.10 小结 103
第6章 面向对象的php 104
6.1 oop的好处 104
6.1.1 封装 104
6.1.2 继承 105
6.1.3 多态 105
6.2 关键的oop概念 106
6.2.1 类 106
6.2.2 对象 107
6.2.3 字段 107
6.2.4 属性 109
6.2.5 常量 112
6.2.6 方法 112
6.3 构造函数和析构函数 116
6.3.1 构造函数 116
6.3.2 析构函数 118
6.4 静态类成员 119
6.5 instanceof关键字 120
6.6 辅助函数 120
6.7 自动加载对象 122
6.8 小结 122
第7章 高级oop特性 123
7.1 php不支持的高级oop特性 123
7.2 对象克隆 124
7.2.1 克隆示例 124
7.2.2 __clone()方法 125
7.3 继承 126
7.3.1 类继承 127
7.3.2 继承和构造函数 128
7.4 接口 130
7.4.1 实现一个接口 131
7.4.2 实现多个接口 132
7.5 抽象类 132
7.6 命名空间介绍 133
7.7 小结 135
第8章 错误和异常处理 136
8.1 配置指令 136
8.2 错误日志 138
8.3 异常处理 140
8.3.1 为什么异常处理很方便 141
8.3.2 php的异常处理实现 142
8.4 小结 146
第9章 字符串和正则表达式 147
9.1 正则表达式 147
9.1.1 正则表达式语法(posix) 147
9.1.2 php的正则表达式函数(posix扩展) 149
9.1.3 正则表达式语法(perl风格) 152
9.2 其他字符串函数 158
9.2.1 确定字符串长度 158
9.2.2 比较两个字符串 158
9.2.3 处理字符串大小写 160
9.2.4 字符串与html相互转换 161
9.3 正则表达式函数的替代函数 165
9.3.1 填充和剔除字符串 171
9.3.2 字符和单词计数 172
9.4 使用pear:validate_us 174
9.4.1 安装validate_us 174
9.4.2 使用validate_us 175
9.5 小结 175
第10章 处理文件和操作系统 176
10.1 了解文件和目录 176
10.1.1 解析目录路径 176
10.1.2 计算文件、目录和磁盘大小 178
10.1.3 确定访问和修改时间 181
10.2 文件处理 182
10.2.1 资源的概念 182
10.2.2 换行 182
10.2.3 识别文件末尾字符 182
10.2.4 打开和关闭文件 183
10.2.5 读取文件 184
10.2.6 将字符串写入文件 189
10.2.7 移动文件指针 190
10.2.8 读取目录内容 190
10.3 执行shell命令 191
10.4 系统级程序执行 193
10.4.1 清理输入 193
10.4.2 php的程序执行函数 194
10.5 小结 196
第11章 pear 197
11.1 流行的pear包 197
11.1.1 预安装的包 197
11.1.2 安装程序建议的包 198
11.2 pear的强大功能:数值格式转换 198
11.3 安装和更新pear 199
11.3.1 安装pear 199
11.3.2 pear和托管公司 200
11.3.3 更新pear 200
11.4 使用pear包管理器 201
11.4.1 查看安装的pear包 201
11.4.2 了解pear安装包的更多信息 201
11.4.3 安装pear包 202
11.4.4 将包包含到脚本中 203
11.4.5 升级pear包 204
11.4.6 卸载包 204
11.4.7 降级pear包 205
11.5 小结 205
第12章 日期和时间 206
12.1 unix时间戳 206
12.2 php的日期和时间库 206
12.2.1 验证日期 207
12.2.2 格式化日期和时间 207
12.2.3 将时间戳转换为用户友好的值 210
12.2.4 处理时间戳 211
12.3 日期函数 212
12.3.1 显示本地化的日期和时间 212
12.3.2 显示网页的最新修改日期 215
12.3.3 确定当前月份中的天数 216
12.3.4 确定任意给定月份的天数 216
12.3.5 计算当前日期后x天的日期 216
12.3.6 利用pear:创建日历 217
12.4 为php 5.1+用户提供的日期时间改进 219
12.4.1 datetime构造函数简介 220
12.4.2 格式化日期 220
12.4.3 实例化后设置日期 220
12.4.4 实例化后设置时间 221
12.4.5 修改日期和时间 221
12.5 小结 221
第13章 表单 222
13.1 php和web表单 222
13.1.1 简单示例 223
13.1.2 向函数传递表单数据 224
13.1.3 处理多值表单组件 225
13.2 充分利用pear: html_quickform 226
13.2.1 安装html_quickform 227
13.2.2 创建一个简单的表单 227
13.2.3 使用自动完成 231
13.3 小结 232
第14章 身份验证 233
14.1 http验证概念 233
14.2 php验证 234
14.2.1 验证变量 234
14.2.2 有用的函数 235
14.3 php验证方法 236
14.3.1 硬编码的身份验证 236
14.3.2 基于文件的身份验证 236
14.3.3 基于数据库的身份验证 238
14.3.4 基于ip的身份验证 239
14.3.5 利用pear:auth_http 241
14.4 用户登录管理 243
14.4.1 用cracklib库测试密码易猜性 243
14.4.2 一次性url和密码恢复 245
14.5 小结 247
第15章 处理文件上传 248
15.1 通过http协议上传文件 248
15.2 通过php上传文件 249
15.2.1 php的文件上传/资源指令 249
15.2.2 $_files数组 250
15.2.3 php的文件上传函数 251
15.2.4 上传错误消息 252
15.2.5 一个简单的示例 252
15.3 利用pear:http_upload 253
15.3.1 安装http_upload 253
15.3.2 上传文件 254
15.3.3 了解关于上传文件的更多信息 254
15.3.4 上传多个文件 255
15.4 小结 256
第16章 网络 257
16.1 dns、服务器和服务 257
16.1.1 dns 257
16.1.2 服务 261
16.1.3 建立套接字连接 261
16.2 邮件 263
16.2.1 配置指令 263
16.2.2 使用php脚本发送电子邮件 264
16.3 常见网络任务 268
16.3.1 连接服务器 269
16.3.2 创建端口扫描器 269
16.3.3 创建子网转换器 270
16.3.4 测试用户带宽 272
16.4 小结 273
第17章 php和ldap 274
17.1 在php中使用ldap.. 275
17.1.1 连接到ldap服务器 275
17.1.2 获取ldap数据 277
17.1.3 统计所获取的项 280
17.1.4 排序ldap记录 281
17.1.5 插入ldap数据 281
17.1.6 更新ldap数据 282
17.1.7 删除ldap数据 283
17.1.8 处理区分名 283
17.1.9 错误处理 284
17.2 小结 285
第18章 会话处理器 286
18.1 什么是会话处理 286
18.2 配置指令 288
18.2.1 管理会话存储介质 288
18.2.2 设置会话文件路径 288
18.2.3 自动启用会话 288
18.2.4 设置会话名称 289
18.2.5 选择cookie或url重写 289
18.2.6 自动进行url重写 289
18.2.7 设置会话cookie的生存期 289
18.2.8 设置会话cookie的有效url路径 289
18.2.9 为启用会话的页面设置缓存方向 290
18.3 处理会话 291
18.3.1 开始会话 291
18.3.2 销毁会话 291
18.3.3 设置和获取会话id 292
18.3.4 创建和删除会话变量 292
18.3.5 编码和解码会话数据 293
18.4 实际的会话处理示例 294
18.4.1 以返回用户的身份自动登录 294
18.4.2 生成最近浏览的文档索引 296
18.5 创建定制会话处理器 297
18.5.1 将定制会话函数加入到php逻辑 298
18.5.2 基于mysql的定制会话处理器 298
18.6 小结 302
第19章 用smarty模板化 303
19.1 什么是模板化引擎 303
19.2 smarty介绍 305
19.3 安装smarty 305
19.4 使用smarty 306
19.5 smarty的表现逻辑 308
19.5.1 注释 308
19.5.2 变量修饰符 308
19.5.3 控制结构 311
19.5.4 语句 315
19.6 创建配置文件 317
19.6.1 config_load 317
19.6.2 引用配置变量 317
19.7 结合smarty使用css 318
19.8 缓存 319
19.8.1 处理缓存生命期 320
19.8.2 通过is_cached()消除处理开销 320
19.8.3 为每个模板创建多个缓存 321
19.8.4 关于缓存的结束语 322
19.9 小结 322
第20章 web服务 323
20.1 为什么使用web服务 323
20.2 rss 324
20.2.1 理解rss语法 326
20.2.2 magpierss介绍 327
20.3 simplexml 334
20.3.1 加载xml 335
20.3.2 解析xml 336
20.4 soap 339
20.4.1 soap消息介绍 339
20.4.2 php的soap扩展介绍 340
20.5 小结 346
第21章 安全php编程 347
21.1 安全地配置php 347
21.1.1 安全模式 347
21.1.2 其他与安全有关的配置参数 349
21.2 隐藏配置细节 351
21.2.1 隐藏apache 351
21.2.2 隐藏php 351
21.3 隐藏敏感数据 352
21.3.1 隐藏文档根目录 353
21.3.2 拒绝访问某些文件扩展名 353
21.4 清理用户数据 353
21.4.1 文件删除 354
21.4.2 跨网站脚本 354
21.4.3 清理用户输入:解决方案 355
21.4.4 利用pear:validate 357
21.5 数据加密 359
21.5.1 php的加密函数 359
21.5.2 mcrypt包 361
21.6 小结 362
第22章 sqlite 363
22.1 sqlite介绍 363
22.1.1 安装sqlite 363
22.1.2 使用sqlite命令行界面 364
22.2 php的sqlite库 365
22.2.1 sqlite.assoc_case=o
......(更多)
变量是具有名字的内存位置,其中存有数据,可以在程序执行期间进行处理。
静态变量(Static Variable)在计算机编程领域指在程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)存储空间的一类变量。
......(更多)