第一图书网

PHP 5完全攻略

杜江 杜江 电子工业出版社 (2010-05出版)
出版时间:

2010-5  

出版社:

杜江 电子工业出版社 (2010-05出版)  

作者:

杜江  

页数:

659  

Tag标签:

无  

前言

读着杜江先生的新作,让我想起了八、九年前,在我所服务的单位——美国Yahoo!总部的一些经历。那时候,还是互联网的迅速发展阶段,Yahoo!还是个不到一千人的新兴公司,正从各地招兵买马,壮大充实,以和当时的劲敌美国在线、Lycos等力拼。在早期互联网公司松散的管理下,各个部门各自为政,除了操作系统基本上是FreeBSD、Web Server主要是Apache以外,其他就要看各部门主力工程师的个人偏好了,于是百花齐放,Perl、C/C++、Java都有人用,更是有Yahoo!内部开发的所谓HTML Forms和HF2K的脚本语言。我那时候负责Yahoo Everywhere部分开发及全球部署工作,职责就是把Yahoo!的各种服务WML化,让人们用手机上网、在世界各地也能轻松享用Yahoo!的各项产品。那时,除了和电信运营商、手机厂商打交道,最多的时间就是花在和Yahoo!内各部门的工程师协调、合作,以及了解、衔接他们的系统。 相比之下,现时的互联网工程师是比较幸运的。基本上,开发一个网站项目,在工具、架构的选择上已是没有什么悬念,除了微软或Java那一套,就是所谓的LAMP(Linux、Apache、MySQL、PHP)模式了。毕竟这个模式不但完全免费,而且身经百战,被Yahoo!、新浪等大型网站广为采用。还记得当年(应该是2001年吧),雅虎美国总部为了整治公司内部系统的混乱,弥补自身脚本语言的不足,为长期持续的发展建立可以持续的基础,很明智地在公司各部门统一推广了PHP的使用。这一举措也为PHP日后的壮大起到了一定的推动作用。不过,也因为这样,在前人的努力累积的硕果上,再加上互联网搜索信息快速方便,养成了许多工程师的惰性。这个现象在中国感觉尤为严重。有了LAMP的架构,又随时可以搜到各种问题的开源解答,许多工程师或管理人员就把网站建设不当回事,也不深究,不求甚解。要知道,要把一个网站搭建起来,的确可以是一个很简单的事,但是,要做大,要做好,要做到英文里各种所谓“bilities”(maintainability、flexibility、extensibility、availability、reliability、scalability)的境界,很多东西是要深入了解,细细琢磨的。这就是为什么我常强调,希望我的合作伙伴都是“工程师”,而非简单的“程序员”。 杜江先生就是我曾共事过的高级工程师之一。他写的这本《PHP 5与MySQL 5完全攻略》可以说同时兼顾到了“工程师”和“程序员”两种读者的需求。 这本600多页的参考书既有许多针对日常会遇到的问题、案例,提供可直接应用上的答案,又有深入的、循序渐进的描述、解析了PHP 5及MySQL 5的技术细节,是一本值得推荐给所有以PHP、MySQL为基础搭建网站的工程师与程序员的好书。

内容概要

  《PHP 5完全攻略》是目前第一本真正介绍PHP 5及MySQL 5新增语法与功能的中文版本权威宝典!  《PHP 5完全攻略》本着精、全、要三宗旨,从理论中延伸,从实践中深入,翔实并完善地描述了PHP 5的开发特性与MySQL 5数据库。本书分为两大部分,第1部分主要阐述PHP开发的基础知识,如PHP数组与表单处理、PHP 5面向对象开发、Ajax、CLI、字符流处理、加密技术、图片处理及PHP代码优化,以及存储过程、游标、事务等进阶内容;书中第2部分的开发实例是作者开发的原创作品,该部分内容不仅会令读者的开发水平有所增进,而且可在案例的基础上进行二次开发,做出符合自己业务的网站系统。  《PHP 5完全攻略》既可作为初学者或刚刚从其他语言转做PHP开发的程序员和软件工程师的学习参考书,也可作为掌握PHP 5的进阶应用及高级知识的案上学习指南。

作者简介

  PHP开发专家。精通PHP5、Ajax、Java、Perl、XML/XSLT,SQLServer,Oracle,MySQL及搜索引擎技术,UNIX-FreeBSD/Liunx平台。 东北大学计算机科学与技术专业,工学学士。中国第一本原创热销技术图书《PHP5与MySQL5 Web开发技术详解》作者。

书籍目录

第1部分 PHP 5基础第一篇 PHP 5基础知识第1章 PHP 5概述 31.1 什么是PHP 31.1.1 PHP的历史 31.1.2 PHP的优点 41.1.3 PHP的精神 51.1.4 PHP与Web 2.0 61.2 PHP 5的新特性 71.2.1 新的面向对象模式 71.2.2 新的面向对象特性 71.2.3 其他新特性 111.2.4 PHP 5.3新特性 121.2.5 MySQL 5.1新特性 121.3 PHP 5的扩展库 131.3.1 XML扩展 131.3.2 SPL 141.3.3 MySQLi扩展 151.3.4 PDO数据库抽象层 151.3.5 JSON扩展 151.4 PHP 5外部扩展库 151.4.1 PECL扩展 151.4.2 PEAR扩展 161.5 PHP 5的其他更新 161.5.1 Zend引擎2.x 161.5.2 新的内存管理器 161.5.3 Zend Optimizer与Zend Core 171.6 PHP与WEB服务器 171.6.1 Apache 171.6.2 Microsoft IIS 171.6.3 其他Web服务器 181.7 PHP 5安装与配置 181.7.1 Win32平台下Apache环境安装 181.7.2 Win32平台下IIS环境安装 351.7.3 使用集成化安装包 381.7.4 FreeBSD平台 391.7.5 Linux平台 451.8 PHP配置与初步优化 481.9 其他需注意的问题 481.10 PHP开发工具 491.11 小结 54第2章 PHP 5开发基础 552.1 PHP初相遇 552.2 几个技术点 562.2.1 PHP语句 572.2.2 空格与空行 572.2.3 注释 572.2.4 函数调用 582.3 变量与变量名 582.4 变量的赋值 592.5 变量的引用赋值 592.6 PHP的数据类型 602.7 标量数据类型 602.7.1 整型 602.7.2 浮点型 602.7.3 字符串型 612.7.4 布尔型 612.8 复合数据类型 612.8.1 数组 612.8.2 对象 622.9 特殊数据类型 632.9.1 NULL 632.9.2 资源 632.10 变量打印与输出 642.10.1 使用echo函数 642.10.2 使用print函数 642.10.3 echo和print的区别 642.10.4 使用printf函数 652.10.5 使用sprintf函数 652.10.6 显示数组与对象 662.11 变量操作符 672.11.1 算术运算符 672.11.2 赋值操作符 682.11.3 字符串连接 682.11.4 字符串换行连接 682.11.5 花括号的作用 692.11.6 单引号与双引号 702.11.7 HereDoc 702.11.8 转义操作符 712.11.9 格式控制符 712.11.10 递增与递减操作符 722.11.11 三元操作符 722.11.12 比较运算符 732.11.13 布尔运算符 742.11.14 位操作符 752.12 数据类型自动转换 762.13 数据类型强制转换 772.13.1 转换为整型数据 782.13.2 用intval()函数取整 782.13.3 转换为浮点型数据 782.13.4 转换为布尔型数据 792.13.5 转换为字符串型数据 792.13.6 转换为数组 792.13.7 转换为对象 802.14 超级全局数组 802.14.1 $_SERVER超级全局变量数组 812.14.2 修改全局数组的值 842.15 变量与脚本处理 842.15.1 使用isset()函数检测变量定义 842.15.2 使用unset()函数删除变量 852.15.3 使用empty()函数检测变量值是否为空 852.15.4 其他检测类函数族 852.16 常量 852.16.1 定义常量 862.16.2 PHP魔术常量 862.17 PHP的控制结构 872.17.1 分支结构语句 872.17.2 循环结构语句 922.18 包含控制语句 972.18.1 include与require 972.18.2 include_once与require_once 982.18.3 eval() 982.18.4 中止脚本的执行:exit()与die() 992.19 函数 992.19.1 函数的命名 1002.19.2 函数的结构 1002.19.3 从函数中返回值 1012.19.4 函数参数的传递 1022.19.5 函数与全局变量 1062.19.6 函数的静态变量 1072.19.7 函数中使用常量 1082.19.8 递归函数 1092.19.9 解决函数重名的方法 1092.20 可变变量 1102.21 字符串操作 1102.21.1 手动转义字符串数据 1102.21.2 自动转义字符串数据 1112.21.3 数值转换字符串 1122.21.4 字符串序列化 1122.21.5 清理字符串中的空格 1132.21.6 格式化字符串 1142.21.7 字符串切分 1142.21.8 字符串截取 1152.21.9 计算字符串的长度 1152.21.10 字符串单词统计 1162.21.11 字符串查找 1172.21.12 字符串处理 1182.22 日期与时间 1232.22.1 UNIX时间戳 1232.22.2 日期函数 1242.22.3 时间函数 1272.23 网络相关处理 1302.23.1 header()函数 1302.23.2 处理URL字符串 1322.23.3 获得PHP环境信息 1342.24 其它操作符 1352.24.1 @-错误抑制符 1352.24.2 执行外部命令 1352.25 小结 136第3章 正则表达式 1373.1 正则表达式简介 1373.2 正则表达式功能 1373.3 POSIX正则表达式 1383.3.1 ^和$定位符 1383.3.2 POSIX量词 1383.3.3 方括号表达式 1393.3.4 预定义字符簇 1403.3.5 POSIX正则表达式函数 1403.4 PCRE正则表达式函数 1423.4.1 PCRE字符类 1423.4.2 PCRE匹配 1423.4.3 PCRE正则表达式函数 1433.5 正则表达式VS函数 1493.6 创建BBCODE 1493.7 小结 150第4章 PHP数组 1514.1 什么是数组 1514.2 数组的类型 1524.2.1 数字索引数组 1524.2.2 关联数组 1524.3 数组的构造 1534.3.1 一维数组 1534.3.2 二维数组与多维数组 1544.3.3 多维数组 1594.4 快速创建数组 1614.4.1 使用range()函数 1614.4.2 为数组追加数据 1624.4.3 修改数组内容 1624.5 访问和处理数组内容 1624.5.1 数字索引数组排序 1624.5.2 关联数组排序 1634.5.3 数组随机抽取shuffle()和array_rand() 1644.5.4 统计数组元素出现的次数 1654.5.5 数组联合array_combine 1664.5.6 数据合并array_merge 1664.5.7 查找数组中键名是否存在 1674.5.8 查找数组值是否存在 1684.5.9 计算数组中数值元素的和 1694.5.10 去除数组中重复的元素值 1694.5.11 移动数组内部指针 1704.5.12 取得关联数组的键名 1704.5.13 访问数组的键名和元素 1704.5.14 判断数组的类型 1714.5.15 显示数组内容与结构 1714.5.16 移除数组中的指定元素 1734.5.17 在数组顶部插入元素 1744.5.18 在数组任意位置插入元素 1744.5.19 数组元素的统计count()函数和sizeof()函数 1754.5.20 数组键名与值的对调array_flip()函数 1754.5.21 对数组元素分组统计array_values()函数 1764.5.22 删除数组首末尾元素 1774.5.23 删除数组中任意位置的元素 1774.5.24 将数组内容导出为变量extract()函数 1794.6 数组遍历(使用FOREACH) 1804.6.1 一维索引数组的遍历 1804.6.2 一维关联数组的遍历 1814.7 使用FOR语句对数组遍历 1824.8 使用FOR语句实现树状菜单 1824.9 数组遍历LIST()和EACH() 1844.10 数组复位RESET()函数 1854.10.1 each() 1854.10.2 list() 1854.11 FOREACH与FOR语句对数组处理的比较 1864.12 数组内容过滤 1864.13 小结 188第二篇 PHP 5核心应用与规范第5章 表单——处理用户输入 1905.1 表单与HTML 1905.2 表单与PHP 1905.3 表单设计 1915.3.1 文本框 1915.3.2 密码文本框 1915.3.3 单选项 1925.3.4 复选项 1925.3.5 下拉列表 1935.3.6 表单属性 1945.3.7 提交与复位按钮 1945.4 GET与POST方法 1955.4.1 使用GET方法 1955.4.2 使用POST方法 1995.4.3 POST方法和GET方法混合使用 2005.4.4 POST方法和GET方法的区别 2025.4.5 选择POST还是GET 2025.5 动态生成表单 2025.6 表单的处理方法 2055.6.1 检查表单提交的来源 2055.6.2 一个完整表单处理 2065.7 其他处理表单的方法 2085.7.1 使用import_request_variables()函数 2085.7.2 使用extract()函数 2095.8 多页面间传递数据 2105.9 验证表单数据 2105.9.1 客户端验证 2105.9.2 服务器端验证 2115.9.3 避免表单重复提交 2115.9.4 表单过期的处理 2135.9.5 判断表单动作的技巧 2135.10 表单安全 2145.10.1 处理全局性错误 2145.10.2 预防SQL注入 2175.11 开发安全的代码 2185.11.1 用户输入验证 2185.11.2 高级数据验证:使用ctype 2185.11.3 数据过滤 - PECL filter扩展 2195.11.4 input_get()函数 2205.11.5 路径检测 2215.11.6 魔法引用magic_quotes_gpc 2215.11.7 其他高效的解决方案 2215.12 小结 222第6章 PHP加密技术 2236.1 MD5算法 2236.2 SHA-1算法 2236.3 CRACKLIB扩展库 2246.4 MCRYPT扩展与DES算法 2246.4.1 mcrypt加密扩展 2256.4.2 mcrypt加密模式 2256.4.3 mcrypt初始化向量 2266.4.4 mcrypt加密与解密方法 2276.5 小结 228第7章 PHP国际化与本地化 2297.1 I18N和L10N 2297.2 字符集与编码 2297.2.1 ASCII字符集 2307.2.2 ISO-8859字符集 2307.2.3 ANSI编码 2307.2.4 GB2312与GBK编码 2307.2.5 Unicode字符集 2317.2.6 正确使用文件编码 2327.3 GETTEXT扩展库 2327.3.1 设置gettext 2337.3.2 php_gettext函数集 2337.3.3 编写I18N程序 2337.3.4 设置gettext po文件 2347.4 系统本地化函数族 2367.4.1 setlocale()函数 2367.4.2 货币值本地化 2377.4.3 使用pc_format_currency( )函数 2387.5 ICONV()函数 2397.6 MBSTRING扩展库 2407.6.1 使用mbstring进行字符串截取 2407.6.2 检测字符串编码 2417.6.3 mbstring转换编码 2417.7 小结 242第8章 PHP开发规范 2438.1 代码结构 2438.1.1 一个脚本服务全部 2438.1.2 分离显示逻辑 2448.2 良好的编码风格与样式 2448.2.1 代码注释 2458.2.2 代码缩进 2468.2.3 使用必要的空格 2468.2.4 SQL编写规范 2478.2.5 控制结构 2478.2.6 函数的命名 2478.2.7 类命名规范 2488.2.8 减少出错的技巧 2488.3 小结 249第9章 PHP 5面向对象开发 2509.1 面向对象基础 2509.2 PHP 5 面向对象编程概述 2519.2.1 类的封装 2519.2.2 类的继承 2519.3 对象 2519.4 创建和使用类 2529.5 类的结构与定义 2529.6 成员方法 2529.7 成员变量与属性 2539.8 $THIS关键字 2549.9 构造方法 2549.10 析构方法 2569.11 类的继承与多态 2569.11.1 类的继承——extends 2569.11.2 数据的隐藏 2589.11.3 访问成员变量的约束 2589.11.4 设置访问成员方法 2599.11.5 类常量 2609.11.6 静态成员变量 2609.11.7 静态成员方法 2629.12 对象传递 2629.13 克隆一个对象——CLONE 2639.14 对象的比较 2639.15 对象类型的检测——INSTANCEOF 2649.16 克隆一个成员方法 2649.17 类的多态性 2659.18 PARENT::与SELF::关键字 2679.19 抽象方法与抽象类 2679.20 接口的实现 2699.21 实现多个接口 2709.22 FINAL方法 2729.23 FINAL类 2729.24 例外与异常处理 2739.25 方法中声明类的类型 2749.26 重载与多态 2759.27 魔术方法 2759.27.1 _ _get()与_ _set()方法 2759.27.2 _ _call()方法 2769.27.3 _ _sleep()与_ _wakeup()方法 2779.27.4 _ _toString()方法 2779.27.5 _ _autoload()方法 2789.28 类映射API REFLECTION 2799.29 小结 286第10章 PHP会话管理 28710.1 概述 28710.2 COOKIE管理 28710.2.1 什么是Cookie 28810.2.2 Cookie工作原理 28810.2.3 Cookie应用开发 28810.2.4 一个通用的Cookie类 29210.2.5 解决方案 29310.3 SESSION管理 29410.3.1 什么是Session 29410.3.2 Session配置 29510.3.3 Session应用 29710.3.5 Session编码与解码 30010.3.6 Session中保存数组 30010.3.6 Session中保存对象 30110.3.7 Session存取优化 30310.3.8 多服务器下共享Session 30410.3.9 Session安全 30710.4 小结 308第11章 PHP输入输出缓冲 30911.1 缓冲技术简介 30911.2 从缓冲读取内容 31011.3 使用回调函数 31111.4 输出回调函数 31111.5 压缩内容输出 31211.6 小结 312第12章 文件系统与字符流 31312.1 文件与路径 31312.1.1 分析一个文件的名称与扩展名 31312.1.2 利用PHP自带函数分析当前路径 31412.1.3 显示相对路径的真实路径 31412.2 文件类型与相关信息 31412.2.1 filesize()——计算文件的大小 31512.2.2 取得文件的建立、最后访问与更新时间 31512.2.3 fileperms()——文件属性以及权限 31512.2.4 取得文件所有者(Owner) 31512.3 文件的顺序读写 31512.3.1 文件打开与写入 31512.3.2 文件输出 31712.3.3 读取文件内容 31812.4 文件的非线性读写 31812.4.1 fseek()函数 31912.4.2 ftell()函数 31912.4.3 rewind()函数 31912.4.4 parse_ini_file()函数 32012.5 自定义日志记录 32112.6 目录和磁盘操作 32112.6.1 disk_free_space()——统计某个目录的剩余空间 32112.6.2 disk_total_space()——显示逻辑磁盘的容量 32212.6.3 getcwd()/chdir()函数 32212.6.4 opendir()与readdir()函数 32212.6.5 实现iterator接口的目录读取 32312.7 字符流 32412.7.1 流与封装器的原理 32512.7.2 PHP 5的预置流包装器 32512.7.4 流与封装器的应用 32612.7.5 Filter过滤器及其应用 32812.7.6 流相关函数 33012.7.7 创建自己的流过滤器 33112.8 取得HTTPS加密内容 33212.9 创建自己的流封装器 33312.10 小结 334第三篇 MySQL 5与PHP 5接口第13章 WEB数据库设计 33613.1 数据库和数据库系统的概念 33613.2 数据库设计的步骤 33713.3 表名与字段名规则 33813.4 小结 339第14章 MYSQL 5数据库 34014.1 MYSQL简介 34014.2 MYSQL 5特性 34114.2.1 MySQL 5优点 34114.2.2 MySQL 5缺点 34114.2.3 MySQL 5性能 34114.3 MYSQL数据库存储类型 34214.4 MYSQL字段类型 34314.5 MYSQL字符集与整理 34414.5.1 MySQL 5字符集支持的原理 34414.5.2 修改MySQL字符集方法 34414.6 MYSQL 5应用与管理 34514.6.1 登录到MySQL 34514.6.2 修改root管理密码 34614.6.3 创建数据库 34614.6.4 改变数据库存储路径 34614.6.5 MySQL权限系统 34714.6.6 phpMyAdmin管理工具 35014.7 MYSQL管理工具 35714.8 小结 357第15章 MYSQL数据库 35815.1 MYSQL操作与SQL 35815.2 检索表中的数据 36115.2.1 SELECT 语句 36115.2.2 SELECT的聚集函数 36215.2.3 结果集排序 36215.2.4 函数 36215.2.5 关联查询 36215.3 高级SQL技术 36415.3.1 主键 36415.3.2 子查询 36515.3.3 联合查询 36515.4 MYSQL事务处理与触发器 36515.4.1 存储进程 36515.4.2 触发器(trigger) 36615.4.3 视图 36615.4.4 PHP与MySQL字符集 36715.5 小结 368第16章 PHP与MYSQL 36916.1 PHP5与MYSQL连接的MYSQL扩展 36916.2 数据库查询 37016.3 其他显示记录集的函数 37216.4 PHP 5与MYSQL的新接口MYSQLI 37516.5 智能选择MYSQL扩展 38416.6 小结 387第17章 PHP数据库抽象层 38817.1 什么是数据库抽象层 38817.2 常用的数据库抽象层 38917.2.1 PEAR:DB 38917.2.2 ADODB 39017.2.3 Metabase 39017.2.4 MDB 39117.2.5 MDB2 39117.2.6 Creole 39217.2.7 PDO 39217.2.8 PHPLib 39217.3 PDO数据库抽象类 39217.3.1 PDO简介 39217.3.2 PDO的安装 39317.3.3 PDO连接数据库 39317.3.4 使用PDO查询 39417.3.5 错误与异常处理 39517.3.6 取得查询结果 39717.4 ADODB 40117.4.1 使用ADODB 40117.4.2 ADODB安装 40217.4.3 启动ADODB 40217.4.4 ADODB的查询方法 40317.4.5 移动记录集 40317.4.6 使用ADODB生成HTML 40417.4.7 使用ADODB进行分页 40417.4.8 生成下拉选择菜单 40417.4.9 ADODB开发实例 40417.5 PHPLIB 41617.5.1 使用PHPLib查询 41617.5.2 创建GetAll方法 41817.6 小结 419第四篇 PHP 5进阶与技巧第18章 SMARTY与模板技术 42118.1 MVC简介 42118.2 模板系统 42218.3 SMARTY概述 42218.3.1 Smarty的优点 42218.3.2 Smarty开发特性 42318.4 安装SMARTY 42318.5 SMARTY开发基础 42518.5.1 第一个模板程序 42518.5.2 编译后的模板 42618.5.3 Smarty区块 42718.5.4 Smarty注释 42718.5.5 Smarty变量与变量格式化 42718.6 SMARTY的控制结构 43018.6.1 IF分支结构 43018.6.2 循环结构 43218.6.3 Smarty生成表单元素 44018.6.4 Smarty文件包含 44218.7 SMARTY缓存 44318.8 深入SMARTY开发 44418.8.1 register_function 44418.8.2 register_block 44418.8.3 register_modifier 44418.8.4 在模板内运行PHP代码 44518.8.5 几个重要的模板修饰符 44518.8.6 Smarty的保留变量 44618.8.7 模板配置文件 44718.8.8 Smarty工作台 44718.8.9 Smarty生成静态页面 44818.8.10 制作在线日历 44818.8.11 Smarty与ADODB 44918.9 小结 451第19章 PHP和AJAX技术 45219.1 AJAX简介 45219.2 AJAX特性 45319.3 XAJAX简介 45319.4 XAJAX如何工作 45319.5 异步更新内容 45419.6 异步处理表单数据 45619.7 增加自定义功能 45719.8 解决乱码 45719.9 SMARTY与XAJAX 45719.10 小结 459第20章 使用PHP编写SHELL 46020.1 简介 46020.2 PHP CLI SHELL脚本 46020.2.1 CLI 与CGI的区别 46020.2.2 CLI的配置参数 46020.3 PHP命令行接口(CLI) 46120.4 CLI命令选项 46220.5 CLI开发 46320.6 CLI实际应用 46720.7 小结 470第21章 PHP网络开发 47121.1 SOCKET技术 47121.1.1 Socket原理 47121.1.2 建立一个连接 47221.1.3 发送一个请求 47221.1.4 查询Whois信息 47321.1.5 创建自己的Socket服务器 47421.2 电子邮件 47521.2.1 电子邮件简介 47521.2.2 MTA和SMTP 47521.2.3 PHP邮件配置 47621.2.4 电子邮件头 47721.2.5 MIME 47721.3 使用MAIL()函数 47921.4 使用SOCKET发送邮件 48121.5 获取远程内容与自动化 48221.5.1 使用CURL 48221.5.2 使用Snoopy类 48421.5.3 FTP操作 48621.5.4 PHP与网络协议 48821.6 小结 488第22章 PHP文件上传 48922.1 文件上传简介 48922.2 处理上传文件 49022.3 处理多文件上传 49422.4 突破上传的内存限制 49622.5 小结 496第23章 图片与媒体处理 49723.1 使用GD2扩展库 49723.1.1 打开一张图片 49823.1.2 打开任意格式的图片 49823.1.3 显示和保存图片 49923.1.4 图片转换 50023.1.5 创建文字图片 50123.1.6 绘制图形 50223.1.7 创建验证码——CAPTCHA 50323.1.8 缩略图片处理 50423.1.9 创建水印图片 50623.2 使用MING扩展创建FLASH 50823.2.1 创建按钮 50823.2.2 静态文字 50923.2.3 动态文字 51023.2.4 绘制图形 51123.2.5 使用图片 51223.3 使用IMAGEMAGICK 51323.3.1 ImageMagick简介 51323.3.2 安装ImageWand 51423.3.3 读取图片内容 51423.3.4 读取图片尺寸 51523.3.5 图片裁切 51523.3.6 生成图片缩略图 51523.3.7 转换图片格式 51623.3.8 控制图片旋转 51623.3.9 重新缩放图片 51723.3.10 加入渲染效果 51723.3.11 压缩JPEG图片 51823.4 小结 518第24章 XML与RSS 51924.1 XML 51924.1.1 XML的结构与定义 51924.1.2 XML与HTML 52024.2 创建与解析XML文档 52124.2.1 创建一个XML文档 52224.2.2 使用SAX解析XML 52324.2.3 DOM 52524.2.4 SimpleXML 52924.3 RSS聚合与解析技术 53024.3.1 RSS简介 53024.3.2 RSS 0.9 53024.3.3 RSS3 1.0 53124.3.4 RSS 2.0 53224.3.5 Atom 53424.4 XML READER 53624.5 XML与SMARTY 53724.6 小结 537第25章 WEB服务与SOAP 53825.1 WEB服务 53825.1.1 Web服务概述 53825.1.2 Web服务的特点 53925.2 SOAP的消息体 54025.2.1 SOAP封套(SOAP Envelope) 54025.2.2 SOAP头(SOAP Header) 54025.2.3 SOAP错误信息(SOAP Fault) 54025.2.4 消息体(SOAP Body) 54125.3 PHP中的SOAP配置 54125.4 使用PHP开发SOAP应用 54225.4.1 WSDL 54225.4.2 建立SOAP服务器端 54525.4.3 建立SOAP客户端 54625.5 小结 546第26章 PHP与WAP技术 54726.1 WAP技术简介 54726.2 WAP配置 54726.3 WAP页面 54826.3.1 WAP页面简介 54826.3.2 WAP页面跳转 54826.3.3 使用WAP制作登录页面 55026.4 SMARTY与WAP 55426.5 小结 554第五篇 PHP 5调试、升级与优化第27章 错误与异常处理 55627.1 概述 55627.2 错误的类型 55627.2.1 编程错误 55627.2.2 未定义符号 55727.2.3 轻量级错误 55927.2.4 PHP产生的错误 56027.2.5 错误与例外处理 56227.3 小结 567第28章 升级到PHP5 56828.1 简介 56828.2 对象的引用 56828.3 构造对象 56928.4 GET_CLASS()函数 56928.5 IS_A()函数与INSTANCE OF 56928.6 E_STRICT 57028.6.1 自动建立对象 57028.6.2 var与public 57028.7 其他兼容性的问题 57028.7.1 命令行接口 57028.7.2 旧的超级全局数组的升级 57028.7.3 函数修正与功能升级 57128.8 小结 571第29章 PHP优化技巧 57229.1 PHP脚本级优化 57229.1.1 require比require_once快 57329.1.2 不做重复的车轮 57329.2 使用代码优化工具 57429.3 缓存加速 57529.3.1 使用eAccelerator 57529.3.2 使用APC 57729.4 HTTP加速 57829.4.1 HTTP头信息 57829.4.2 启用GZIP内容压缩 57829.5 MYSQL性能优化 57829.5.1 添加索引 57829.5.2 MySQL缓存与性能调优 57929.6 MYSQL日志维护 58129.7 数据库外部优化 58129.7.1 服务器硬件优化 58129.7.2 磁盘优化 58229.7.3 操作系统优化 58229.8 使用反向代理 58229.9 APACHE服务器优化 58329.10 内容压缩与优化 58329.11 分布与负载均衡 58429.12 小结 586第2部分 实战PHP5第30章 实例开发:会员 58930.1 概述 58930.2 页面流程 58930.2.1 用户注册流程 58930.2.2 用户登录流程 59030.3 数据库结构 59030.4 UI与界面 59330.5 目录结构与文件说明 595第31章 实例开发: 60331.1 目录结构与文件说明 60331.2 页面流程 60331.2.1 创建圈子 60331.2.2 管理圈子 60431.2.3 加入其他人创建的圈子 60531.3 数据库结构 60531.4 UI与界面 608第32章 实例开发:爱问系统 61032.1 概述 61032.2 页面流程 61032.3 目录结构与文件说明 61232.4 UI与界面 61332.5 数据库结构 617第33章 实例开发:多用户 61933.1 概述 61933.2 目录结构与文件说明 61933.3 页面流程 62033.4 UI与界面 62033.5 数据库结构 62133.6 小结 623附录A PHP在线资源 592附录B Zend Core安装 593附录C PHP扩展开发 599附录D MySQL字符集与整理 601附录E 代码页与Charset对照表 605附录F php.ini配置详解 606附录G HTTP返回代码表(RFC2068) 626

章节摘录

插图:

媒体关注与评论

对所有的PHPer来说,这是一本极好的书。杜江先生手持利刃,将PHP 5的主方面面给大家一一剖析,并辅以实例,一深入浅出,更浅显易懂,因而本书很适合PHP初学者阅读学习,同时对PHP工作者来说,这也是一本非常有价值的案头宝典。衷心祝愿每位读者都能通过这本书掌握PHP这把利刃!  ——爱好者网技术总监 乔楚PHP与MySQL已经是一个世界流行的Web开发黄金组合,杜江先生在书中结合了大量实际开发 经验,由浅至I深,结合大量实例全方位阐述了PHP 5和MySQL 5。本书既是初学者全面学习和深入掌握PHP 5的教学材料,也可作为专业PHP工作者的参考手册,特向广大PHPer推荐。  ——圣博网总工程师 马明练感谢杜江先生为广大PHP开发者和爱好者带来如此详细且实用的书。赶集网是由PHP 5和MySQL 5开发的,这其中有杜江先生工作的很多成果。希望这本书能让更多喜爱PHP朋友更快更深入地掌握PHP,进而涌现更多基础扎实、功力深厚的PHP人才。  ——赶集网技术主管 李静英才辈出,汇聚极品。杜江先生是在英极奋斗中的精英人才之一,有着丰富的项目开发经验,PHP功底深厚,谙熟大型网部构建,关于使用Open Source软件构建分布应用。这本《PHP 5完全攻略》是他多年工作经验的总结,希望这本书能成为众多PHP技术书中的不二之选。  ——英极软件技术总监 王昕宇


编辑推荐

《PHP 5完全攻略(畅销书升级版)》:彻夜不眠的封闭开发,睡梦中还在思考的业务聚合,除了加油努力,有时候我们忘了还要什么,那不仅是客户端和服务器的脚泰,还有我们的真爱,还有想要的生活,谨以《PHP 5完全攻略(畅销书升级版)》献给所有辛勤工作、努力学习的PHP开发者。

图书封面

图书标签Tags

广告

下载页面


PHP 5完全攻略 PDF格式下载



没有深度, 只说一些很表面的东西.


本来在图书馆借来看的,还了之后索性买了一本,作为参考书,随手翻翻还是很不错的


刚拿到这本书时,第一感觉就是大。在翻看目录时,可以感觉的到它绝不是入门类的书。和市场上许许多多的《……从入门到精通》类书籍完全不同。推荐!推荐!


好评,书很厚,内容很多,什么时候才能看完?


不错的一本书。在众多的php书里,能够讲得清楚地不多,在很多的国外书翻译过来都已经不知道在讲什么。另外,这本书比较适合中国人阅读,详略得当,不会把每一个细节都讲,给读者自我发挥的空间。另外,这本书中有一些思想,就是除了语法外,还渗透了一些php的架构,使读者能真正读懂php。


书其实写得非常的不好,内容松散


内容全面,是本学习的好资料。


适合初学者和开发者做为工具书使用,讲解很详细很基础


这本书很厚很重,比大辞典还重,不过这本书从最基本讲起,后面还有几个实例,从网上可以下到源代码,还是不错的,如果新手从开始学的话还是值得学习的


在书店翻了各种PHP入门书籍之后最终买了这本。内容很详细,php在开发中常用的技术和应用都有涉及到,写得也比较清晰易懂。绝对滴php入门首选!


不错啊,真不错,很不错!


书本架构很合理。适合有一定基础的php开发用户。


纸质一般,至于内容,粗略的翻了前几张,基础部分讲的不如同类书籍详细,所举的例子中有错误,不过,如果阅读对象不是对于任何程序语言都没有涉及的新手,那么那些错误应该不妨碍阅读。


可以系统地学习PHP了


内容详尽,值得购买


还行吧,就是光盘没了。。难怪便宜了这么多


对说初学者来说这本书很不错!


适合php初学者


相关图书