![]() 作者:W.Jason Gilmore 出版社: 人民邮电出版社 原作名: Beginning PHP and MySQL 5, 2nd Ed. 译者:朱涛江 出版年: 2007年01月 页数: 634 定价: 79.00元 丛书: 图灵程序设计丛书 ISBN: 9787115155092 内容简介 · · · · · ·本书是久负盛名的经典著作,以涵盖全面详实而著称,对主题的选取和组织从实用出 发,在讲述知识之外还加入了作者自己的应用经验,并提供了密集的实战代码示例,充 分体现了作者深厚的开发功力。书中对PHP的介绍是迄今为止最为全面的 作者简介 · · · · · ·W. Jason Gilmore,世界知名的PHP开发人员,曾开发了大量PHP和MySQL应用程序,并在各大专业媒体发表了众多脍炙人口的文章。目前,Jason在开发之余,还负责着Apress出版公司的开源图书出版项目。 目录 · · · · · ·第1章 php概述 11.1 历史 1 1.1.1 php 4 2 1.1.2 php 5 3 1.2 php的一般特性 3 1.2.1 实用性 3 · · · · · ·() 第1章 php概述 1 1.1 历史 1 1.1.1 php 4 2 1.1.2 php 5 3 1.2 php的一般特性 3 1.2.1 实用性 3 1.2.2 强大功能 4 1.2.3 可选择性 4 1.2.4 成本 5 1.3 小结 5 第2章 安装配置apache和php 6 2.1 安装 6 2.1.1 获得发行包 6 2.1.2 安装过程 7 2.1.3 测试安装 11 2.1.4 定制unix构建 12 2.1.5 定制windows构建 12 2.1.6 常见错误 13 2.1.7 查看并下载文档 13 2.2 配置 13 2.2.1 管理php的配置指令 14 2.2.2 php的配置指令 15 2.3 小结 29 第3章 php基础 30 3.1 界定php代码 30 3.1.1 默认语法 30 3.1.2 短标记 31 3.1.3 脚本 31 3.1.4 asp风格 32 3.1.5 嵌入多个代码块 32 3.2 注释 32 3.2.1 单行c++语法 32 3.2.2 shell语法 32 3.2.3 多行c语法 33 3.3 输出 33 3.3.1 print() 33 3.3.2 echo() 34 3.3.3 printf() 34 3.3.4 sprintf() 35 3.4 数据类型 35 3.4.1 标量数据类型 35 3.4.2 复合数据类型 37 3.4.3 特殊数据类型 38 3.4.4 类型强制转换 38 3.4.5 类型自动转换 39 3.4.6 与类型有关的函数 40 3.4.7 类型标识符函数 40 3.5 标识符 41 3.6 变量 41 3.6.1 变量声明 42 3.6.2 变量作用域 43 3.6.3 php的超级全局变量 45 3.6.4 变量的变量 48 3.7 常量 49 3.8 表达式 49 3.8.1 操作数 50 3.8.2 操作符 50 3.9 字符串插入 54 3.9.1 双引号 55 3.9.2 单引号 55 3.9.3 heredoc 56 3.10 控制结构 56 3.10.1 执行控制语句 57 3.10.2 条件语句 57 3.10.3 循环语句 59 3.10.4 文件包含语句 63 3.10.5 require_once() 65 3.11 小结 65 第4章 函数 66 4.1 调用函数 66 4.2 创建函数 66 4.2.1 按值传递参数 67 4.2.2 按引用传递参数 68 4.2.3 默认参数值 68 4.2.4 可选参数 68 4.2.5 从函数返回值 69 4.2.6 嵌套函数 70 4.2.7 递归函数 70 4.2.8 变量函数 72 4.3 函数库 73 4.4 小结 74 第5章 数组 75 5.1 什么是数组 75 5.2 输出数组 76 5.3 创建数组 77 5.4 测试数组 79 5.5 增加和删除数组元素 79 5.6 定位数组元素 81 5.7 遍历数组 82 5.8 确定数组大小和唯一性 85 5.9 数组排序 86 5.10 合并、拆分、接合和分解数组 91 5.11 其他有用的数组函数 95 5.12 小结 96 第6章 面向对象的php 97 6.1 oop的好处 97 6.1.1 封装 97 6.1.2 继承 98 6.1.3 多态 98 6.2 关键的oop概念 99 6.2.1 类 99 6.2.2 对象 99 6.2.3 字段 100 6.2.4 属性 102 6.2.5 常量 104 6.2.6 方法 105 6.3 类型提示 108 6.4 构造函数和析构函数 108 6.4.1 构造函数 108 6.4.2 析构函数 110 6.5 静态类成员 111 6.6 instanceof关键字 112 6.7 辅助函数 112 6.8 自动加载对象 114 6.9 小结 114 第7章 高级oop特性 115 7.1 php不支持的高级oop特性 115 7.2 对象克隆 116 7.2.1 克隆示例 116 7.2.2 __clone()方法 117 7.3 继承 118 7.3.1 类继承 118 7.3.2 继承和构造函数 120 7.4 接口 121 7.4.1 实现一个接口 122 7.4.2 实现多个接口 123 7.5 抽象类 124 7.6 反射 124 7.6.1 编写reflectionclass类 125 7.6.2 编写reflectionmethod类 127 7.6.3 编写reflectionparameter类 128 7.6.4 编写reflectionproperty类 129 7.6.5 反射的其他用途 130 7.7 小结 130 第8章 错误和异常处理 131 8.1 配置指令 131 8.2 错误日志 134 8.3 异常处理 135 8.3.1 为什么异常处理很方便 136 8.3.2 php的异常处理实现 137 8.4 小结 140 第9章 字符串和正则表达式 141 9.1 复杂(大括号)偏移语法 141 9.2 正则表达式 142 9.2.1 正则表达式语法(posix) 142 9.2.2 php的正则表达式函数 (posix扩展) 144 9.2.3 正则表达式语法(perl风格) 146 9.3 其他字符串函数 151 9.3.1 确定字符串长度 152 9.3.2 比较两个字符串 152 9.3.3 处理字符串大小写 154 9.3.4 字符串与html相互转换 155 9.3.5 正则表达式函数的替代函数 159 9.3.6 填充和剔除字符串 164 9.3.7 字符和单词计数 165 9.4 使用pear:validate_us 167 9.4.1 安装validate_us 167 9.4.2 使用validate_us 168 9.5 小结 168 第10章 处理文件和操作系统 169 10.1 了解文件和目录 169 10.1.1 解析目录路径 169 10.1.2 文件类型和链接 171 10.1.3 计算文件、目录和磁盘大小 173 10.1.4 访问和修改时间 175 10.2 文件所有权和权限 176 10.3 文件i/o 178 10.3.1 资源的概念 178 10.3.2 换行 178 10.3.3 文件末尾 178 10.3.4 打开和关闭文件 179 10.3.5 读取文件 180 10.3.6 移动文件指针 184 10.3.7 写入文件 184 10.3.8 读取目录内容 185 10.4 执行shell命令 186 10.5 系统级程序执行 187 10.5.1 清理输入 187 10.5.2 php的程序执行函数 188 10.6 小结 190 第11章 pear 191 11.1 流行的pear包 191 11.2 安装和更新pear 193 11.2.1 安装pear 193 11.2.2 pear和isp公司 194 11.2.3 更新pear 194 11.3 使用pear包管理器 194 11.3.1 查看安装的包 195 11.3.2 了解安装包的更多信息 195 11.3.3 安装pear包 196 11.3.4 使用pear包 197 11.3.5 升级pear包 198 11.3.6 卸载pear包 198 11.3.7 降级pear包 199 11.4 小结 199 第12章 日期和时间 200 12.1 unix时间戳 200 12.2 php的日期和时间库 200 12.3 日期函数 206 12.3.1 显示本地化的日期和时间 206 12.3.2 显示网页的最新修改日期 209 12.3.3 确定当前月份中的天数 209 12.3.4 计算当前日期后x天的日期 209 12.3.5 创建日历 210 12.4 php 5.1 213 12.4.1 date基础 213 12.4.2 date构造函数 213 12.4.3 访问方法和修改方法 214 12.4.4 验证函数 216 12.4.5 处理方法 216 12.5 小结 222 第13章 表单和导航提示 223 13.1 php和web表单 223 13.1.1 简单示例 224 13.1.2 向函数传递表单数据 225 13.1.3 处理多值表单组件 226 13.1.4 用php生成表单 227 13.1.5 自动选择表单数据 228 13.1.6 php、web表单和 javascript 229 13.2 导航提示 231 13.2.1 用户友好的url 231 13.2.2 “面包屑型”轨迹 233 13.2.3 创建定制错误处理函数 237 13.3 小结 238 第14章 身份认证 239 14.1 http认证概念 239 14.2 php认证 240 14.2.1 认证变量 240 14.2.2 认证方法 241 14.3 用户登录管理 248 14.3.1 密码指派 248 14.3.2 使用cracklib库测试密码 易猜性 250 14.3.3 一次性url和密码恢复 251 第15章 处理文件上传 254 15.1 通过http协议上传文件 254 15.2 通过php处理上传 255 15.2.1 php的文件上传/资源指令 255 15.2.2 $_files数组 256 15.2.3 php的文件上传函数 256 15.2.4 上传错误消息 258 15.2.5 文件上传示例 258 15.3 利用pear:http_upload 261 15.3.1 安装http_upload 261 15.3.2 了解关于上传文件的更多 信息 262 15.3.3 将上传的文件移动到最终 目标 263 15.3.4 上传多个文件 263 15.4 小结 264 第16章 网络 265 16.1 dns、服务器和服务 265 16.1.1 dns 265 16.1.2 服务 268 16.1.3 建立套接字连接 269 16.2 邮件 271 16.2.1 配置指令 271 16.2.2 发送纯文本电子邮件 272 16.2.3 使用额外的信息首部发送 电子邮件 272 16.2.4 将电子邮件发送给多个 接收者 273 16.2.5 发送html格式的电子邮件 273 16.2.6 发送附件 274 16.3 imap、pop3和nntp 275 16.3.1 需求 276 16.3.2 建立和关闭连接 276 16.3.3 了解更多关于邮箱和邮件 的信息 277 16.3.4 获取邮件 280 16.3.5 写邮件 286 16.3.6 发送邮件 286 16.3.7 邮箱管理 287 16.3.8 邮件管理 288 16.4 流 288 16.4.1 流包装器和上下文 289 16.4.2 流过滤器 290 16.5 常见网络任务 291 16.5.1 连接一台服务器 291 16.5.2 端口扫描器 292 16.5.3 子网转换器 293 16.5.4 测试用户带宽 294 16.6 小结 295 第17章 php和ldap 296 17.1 ldap介绍 297 17.2 在php中使用ldap 297 17.2.1 连接到ldap服务器 297 17.2.2 绑定到ldap服务器 298 17.2.3 关闭ldap服务器连接 299 17.2.4 获取ldap数据 299 17.2.5 处理项值 301 17.2.6 统计所获取的项 302 17.2.7 获取属性 302 17.2.8 排序和比较ldap项 305 17.2.9 处理项 306 17.2.10 回收内存 308 17.2.11 插入ldap数据 309 17.2.12 更新ldap数据 309 17.2.13 删除ldap数据 310 17.2.14 配置函数 311 17.2.15 字符编码 312 17.2.16 处理区分名 312 17.2.17 错误处理 313 17.3 小结 314 第18章 会话处理器 315 18.1 什么是会话处理 315 18.1.1 cookie 315 18.1.2 url重写 316 18.1.3 会话处理过程 316 18.2 配置指令 317 18.3 关键概念 320 18.3.1 开始会话 320 18.3.2 销毁会话 321 18.3.3 获取和设置会话id 321 18.3.4 创建和删除会话变量 321 18.3.5 编码和解码会话数据 322 18.4 实际的会话处理示例 324 18.4.1 自动登录 324 18.4.2 最近浏览的文档索引 325 18.5 创建定制会话处理器 327 18.5.1 将定制会话函数加入到php 逻辑 327 18.5.2 基于mysql的定制会话 处理器 328 18.6 小结 330 第19章 用smarty模板化 331 19.1 什么是模板化引擎 331 19.2 smarty介绍 333 19.3 安装smarty 333 19.4 使用smarty 334 19.5 smarty的表现逻辑 336 19.5.1 注释 336 19.5.2 变量修饰符 336 19.5.3 控制结构 339 19.5.4 语句 342 19.6 创建配置文件 344 19.6.1 config_load 345 19.6.2 引用配置变量 345 19.7 结合smarty使用css 346 19.8 缓存 347 19.8.1 处理缓存生命期 347 19.8.2 通过is_cached()消除处理 开销 348 19.8.3 为每个模板创建多个缓存 348 19.8.4 关于缓存的结束语 349 19.9 小结 350 第20章 web服务 351 20.1 为什么使用web服务 352 20.2 真正简单聚合 353 20.2.1 rss语法 355 20.2.2 magpierss 356 20.3 simplexml 361 20.3.1 simplexml函数 362 20.3.2 simplexml方法 363 20.4 soap 365 20.4.1 nusoap 366 20.4.2 php 5的soap扩展 374 20.5 使用php web服务和c#客户 381 20.6 小结 383 第21章 安全php编程 384 21.1 安全地配置php 384 21.1.1 安全模式 385 21.1.2 其他与安全有关的配置参数 386 21.2 隐藏配置细节 388 21.3 隐藏敏感数据 389 21.3.1 注意文档根目录 390 21.3.2 拒绝访问某些文件扩展名 390 21.4 清理用户数据 390 21.4.1 文件删除 390 21.4.2 跨网站脚本 391 21.4.3 清理用户输入:解决方案 392 21.5 数据加密 394 21.5.1 php的加密函数 394 21.5.2 mhash 395 21.5.3 mcrypt 396 21.6 小结 397 第22章 sqlite 398 22.1 sqlite介绍 398 22.1.1 安装sqlite 398 22.1.2 使用sqlite命令行界面 399 22.2 php的sqlite库 400 22.2.1 sqlite指令 400 22.2.2 打开连接 400 22.2.3 在内存中创建表 401 22.2.4 关闭连接 401 22.2.5 查询数据库 402 22.2.6 解析结果集 403 22.2.7 获取结果集细节 405 22.2.8 操作结果集指针 406 22.2.9 了解表模式的更多信息 408 22.2.10 操作二进制数据 408 22.2.11 创建和覆盖sqlite函数 409 22.2.12 创建聚集函数 410 22.3 小结 411 第23章 pdo介绍 412 23.1 为什么还要另一种数据库抽象层 413 23.2 使用pdo 413 23.2.1 安装pdo 414 23.2.2 pdo的数据库支持 414 23.2.3 连接到数据库服务器并选择 数据库 415 23.2.4 存取属性 416 23.2.5 错误处理 417 23.2.6 查询执行 417 23.2.7 准备语句 418 23.2.8 获取数据 421 23.2.9 设置绑定列 423 23.2.10 事务 424 23.3 小结 425 第24章 mysql介绍 426 24.1 mysql为什么如此流行 426 24.1.1 灵活性 426 24.1.2 强大功能 427 24.1.3 灵活的许可选择 428 24.1.4 超级活跃的用户群体 429 24.2 mysql 4 429 24.3 mysql 5 430 24.4 著名的mysql用户 430 24.4.1 craigslist 430 24.4.2 雅虎财经 431 24.4.3 维基百科 431 24.5 小结 431 第25章 安装和配置mysql 432 25.1 php和mysql许可问题 432 25.1.1 linux 433 25.1.2 windows 433 25.2 下载mysql 433 25.3 安装mysql 434 25.3.1 linux 434 25.3.2 windows 437 25.4 设置mysql管理员密码 439 25.5 启动和停止mysql 439 25.5.1 手工控制守护进程 439 25.5.2 自动启动和停止mysql 441 25.6 配置和优化mysql 442 25.6.1 mysqld_safe 443 25.6.2 配置和优化参数 443 25.6.3 my.cnf文件 446 25.7 小结 448 第26章 众多mysql客户端 449 26.1 标准客户端选项 449 26.2 连接选项 450 26.3 一般选项 450 26.4 mysql 451 26.4.1 关键mysql选项 451 26.4.2 以交互模式使用mysql 452 26.4.3 查看配置变量和系统状态 454 26.4.4 以批处理模式使用mysql 455 26.4.5 有用的mysql提示 456 26.5 mysqladmin 458 26.6 其他实用工具 459 26.6.1 mysqldump 459 26.6.2 mysqlshow 459 26.6.3 mysqlhotcopy 460 26.6.4 mysqlimport 460 26.6.5 myisamchk 461 26.6.6 mysqlcheck 461 26.7 第三方客户端程序 462 26.7.1 mysql管理器 462 26.7.2 phpmyadmin 463 26.7.3 mysql查询浏览器 464 26.7.4 navicat 465 26.8 小结 466 第27章 mysql存储引擎和数据类型 467 27.1 存储引擎 467 27.1.1 innodb 468 27.1.2 myisam 468 27.1.3 memory 470 27.1.4 merge 471 27.1.5 bdb 471 27.1.6 federated 471 27.1.7 archive 472 27.1.8 csv 473 27.1.9 example 473 27.1.10 blackhole 473 27.1.11 存储引擎faq 473 27.2 数据类型和属性 475 27.2.1 数据类型 475 27.2.2 数据类型属性 479 27.3 操作数据库和表 481 27.3.1 操作数据库 481 27.3.2 操作表 483 27.3.3 修改表结构 485 27.3.4 information_schema 485 27.4 小结 487 第28章 保护mysql的安全 488 28.1 首先应当做什么 488 28.2 保护mysqld守护进程 489 28.3 mysql访问权限系统 489 28.3.1 权限系统的工作方式 490 28.3.2 访问信息存储在哪里 491 28.4 用户和权限管理 498 28.4.1 create user 498 28.4.2 drop user 499 28.4.3 rename user 499 28.4.4 grant和revoke命令 499 28.4.5 查看权限 503 28.5 限制用户资源 503 28.6 保护mysql连接 504 28.6.1 授权选项 504 28.6.2 ssl选项 505 28.6.3 启动启用ssl的mysql 服务器 506 28.6.4 使用启用ssl的客户端进行 连接 506 28.6.5 在my.cnf文件中存储ssl 选项 506 28.7 小结 507 第29章 php的mysql扩展 508 29.1 预备工作 508 29.1.1 在linux中启用mysql扩展 508 29.1.2 在windows中启用mysql 扩展 508 29.1.3 用户权限 509 29.1.4 示例数据 509 29.2 php的mysql命令 509 29.2.1 建立和关闭连接 509 29.2.2 在单独的文件中存储连接 信息 511 29.2.3 保护连接信息 511 29.3 选择数据库 512 29.4 查询mysql 512 29.5 获取和显示数据 513 29.6 插入数据 516 29.7 修改数据 517 29.8 删除数据 519 29.9 所选择的记录和受影响的记录 520 29.10 获取数据库和表的信息 521 29.11 获取字段信息 523 29.11.1 查看表属性 526 29.11.2 获取错误信息 527 29.12 辅助函数 528 29.13 小结 530 第30章 php的mysqli扩展 531 30.1 预备工作 532 30.1.1 在unix中启用mysqli 扩展 532 30.1.2 在windows中启用mysqli 扩展 532 30.1.3 示例数据 532 30.2 使用mysqli扩展 532 30.2.1 连接mysql服务器 532 30.2.2 连接错误报告 533 30.2.3 选择一个mysql数据库 535 30.2.4 关闭mysql连接 536 30.3 查询 536 30.3.1 查询执行 536 30.3.2 回收查询内存 537 30.3.3 准备结果集 538 30.3.4 解析结果 539 30.3.5 多个查询 542 30.3.6 准备语句 543 30.4 数据库事务 548 30.5 小结 549 第31章 存储例程 550 31.1 应当使用存储例程吗 550 31.1.1 存储例程的优点 550 31.1.2 存储例程的缺点 551 31.2 mysql如何实现存储例程 551 31.2.1 存储例程权限表 551 31.2.2 创建存储例程 553 31.2.3 声明和设置变量 554 31.2.4 执行存储例程 555 31.2.5 多语句存储例程 556 31.2.6 从另一个例程中调用例程 562 31.2.7 修改存储例程 563 31.2.8 删除存储例程 563 31.2.9 查看例程状态 563 31.2.10 查看例程的创建语法 564 31.2.11 条件和处理器 564 31.3 将例程集成到web应用程序 565 31.3.1 创建员工奖金界面 565 31.3.2 获取多条记录 566 31.4 小结 566 第32章 mysql触发器 567 32.1 介绍触发器 567 32.1.1 为什么使用触发器 567 32.1.2 在事件前采取行动 568 32.1.3 在事件后采取行动 568 32.1.4 前触发器和后触发器 569 32.2 mysql对触发器的支持 569 32.2.1 创建触发器 570 32.2.2 查看现有的触发器 571 32.2.3 修改触发器 572 32.2.4 删除触发器 572 32.2.5 级联触发器 573 32.3 将触发器集成到web应用程序 574 32.4 小结 575 第33章 视图 576 33.1 视图概述 576 33.2 mysql对视图的支持 577 33.2.1 创建和执行视图 577 33.2.2 查看视图信息 581 33.2.3 修改视图 582 33.2.4 删除视图 583 33.2.5 更新视图 583 33.3 将视图结合到web应用程序中 583 33.4 小结 585 第34章 实用数据库查询 586 34.1 示例数据 586 34.2 用pear创建表格输出 587 34.2.1 安装html_table 587 34.2.2 创建一个简单表 587 34.2.3 创建更可读的行输出 589 34.2.4 根据数据库数据创建表格 589 34.2.5 一般化输出过程 591 34.3 排序输出 593 34.4 创建分页输出 594 34.5 列出页码 597 34.6 子查询 598 34.6.1 用子查询完成比较 599 34.6.2 用子查询确定存在性 599 34.6.3 用子查询维护数据库 600 34.6.4 在php中使用子查询 601 34.7 游标 601 34.7.1 游标基础 601 34.7.2 创建游标 602 34.7.3 打开游标 602 34.7.4 使用游标 602 34.7.5 关闭游标 603 34.7.6 在php中使用游标 604 34.8 小结 604 第35章 索引和搜索 605 35.1 数据库索引 605 35.1.1 主键索引 605 35.1.2 唯一索引 606 35.1.3 常规索引 607 35.1.4 全文索引 608 35.1.5 索引最佳实践 611 35.2 基于表单的搜索 611 35.2.1 执行简单搜索 612 35.2.2 扩展搜索功能 613 35.2.3 执行全文搜索 614 35.3 小结 615 第36章 事务 616 36.1 什么是事务 616 36.2 mysql的事务功能 616 36.2.1 系统需求 617 36.2.2 表创建 617 36.2.3 innodb配置参数 618 36.3 示例项目 619 36.3.1 示例数据 620 36.3.2 执行示例事务 620 36.3.3 备份和恢复innodb表 622 36.3.4 用法提示 622 36.4 用php构建事务应用程序 622 36.5 小结 624 第37章 导入和导出数据 625 37.1 示例表 625 37.2 获得合适的媒介 625 37.3 导出数据 626 37.4 导入数据 628 37.4.1 利用load data infile导入 数据 628 37.4.2 用mysqlimport导入 631 37.4.3 用php加载表数据 633 37.5 小结 634 索引 · · · · · · () |
非常引人入胜
相当发人深省
这本书我在大学时看过一遍
近乎平淡的笔触