出版时间:2009.6 出版社:人民邮电出版社 作者:W. Jason Gilmore 页数:603 译者:朱涛江等
Tag标签:无
前言
最好的编程图书应该不是纯粹地讲述理论,而是要切合实际。虽然我没有幻想自己会成为当代最伟大的技术作家,但在写书过程中,我一直都以此为目标,努力让所写的内容能用到实处。以本书的篇幅来看,很明显,我在竭尽所能地提供这种实用性。也就是说,如果你希望获得PHP编程语言和MySQL数据库服务器的实践经验,对它们有全面的了解,并且想知道如何结合这些卓越的技术创建数据库驱动的动态web应用程序,那么本书正合你所需。各个PHP和MySQL社区的狂热工作促使了本书新版本的诞生,它较之前的版本有了很大的变化。本版不但加入了PHP 6和最新MySQL版本中出现的新特性,还另外增加了两章全新的内容。第23章讲解了如何利用国际化和本地化开源工具创建面向全世界的Web网站。第24章介绍了流行的.Zend框架,它是构建功能强大的Web)应用的绝佳解决方案。另外,原有的章节全部进行了修订,还有一些进行了大的改动,更新和改进了上一版本的内容。如果你初学PHP,强烈推荐从第1章开始阅读。首先掌握PHP的基础知识,对于阅读后面的章节是很有好处的。如果你已经掌握了PHP,但第一次接触!MySQL,可以考虑从第25章开始阅读。如果对PHP和MySQL,都稍有了解或者已经有深入的了解,那么这些中级和高级读者可以有选择地阅读,毕竟这不是一本爱情小说。我尽力合理地划分各章的内容,让你能很快地了解各章的主题,而无需先掌握其他章节的内容(除了介绍技术基础知识的章节)。另外,不论是新手还是经验丰富的PHP和MySQL。开发人员,都能从本书中获益。前面已经提到,我有意将本书组织为一种可以兼作教程和参考书的混合形式。我很清楚你是花自己辛苦挣得的钱来购买本书的,所以会努力将这些内容以合理的方式组织,不仅是在前几次仔细研读时有用,将来也同样会有用。代码下载要理解本书介绍的概念,最有效的办法就是使用书中的代码练习。为方便起见,http://www.apress.com提供了包含所有示例的ZIP文件,可以自由下载。与我联系我非常希望收到读者的来信,与我联系并向我提出建议、意见和问题。可以随时给我发电子邮件:jason@wjgilmore.com。另外,也要经常访问http:llwww.beginningphpandmysql.com来获取勘误、代码。
内容概要
《PHP与MySQL程序设计(第3版)》是PHP与MySQL的经典之作,书中不但全面介绍了两种技术的核心特性,还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序。《PHP与MySQL程序设计(第3版)》涵盖了两种技术新版本中出现的最新特性,书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际中所面临的各种挑战。 《PHP与MySQL程序设计(第3版)》内容全面深入,适合各层次PHP和MySQL开发人员阅读,既是优秀的学习教程,也可用作参考手册。
作者简介
作者:(美国) 吉尔摩 (W.Jason Gilmori) 译者:朱涛江W.Jason Gilmore世界知名软件技术专家,CodeMash技术大会创始人之一。MySQL全球技术大会顾问委员会成员。他曾负责Apress出版公司开源图书出版项目,开发了大量PHP和MySQL应用程序,并在各大专业媒体发表了众多有影响的技术文章。他的个人网站是http://www.wjgilmore.com。
书籍目录
第1章 PHP概述11.1 历史11.1.1 PHP421.1.2 PHP531.1.3 PHP641.2 一般语言特性41.2.1 实用性41.2.2 强大功能51.2.3 可能性51.2.4 成本61.3 小结6第2章 环境配置72.1 安装的前提条件72.1.1 下载Apache82.1.2 下载PHP82.1.3 获得文档92.2 在Linux上安装Apache和PHP92.3 在Windows上安装Apache和PHP112.4 在Windows上安装IIS和PHP122.4.1 安装IIS和PHP132.4.2 配置FastCGI来管理PHP进程132.5 测试安装142.6 配置PHP162.6.1 在Linux上构建时配置PHP162.6.2 定制Windows构建162.7 运行时配置162.7.1 管理PHP的配置指令172.7.2 PHP的配置指令182.8 选择代码编辑器292.8.1 AdobeDreamweaverCS3292.8.2 Notepad++302.8.3 PDT302.8.4 ZendStudio302.9 选择Web托管服务提供商312.1 0小结32第3章 PHP基础333.1 在Web页面中嵌入PHP代码333.1.1 默认语法333.1.2 短标记343.1.3 脚本343.1.4 ASP风格353.1.5 嵌入多个代码块353.2 为代码添加注释353.2.1 单行C++语法353.2.2 shell语法363.2.3 多行C语法363.3 向浏览器输出数据363.3.1 print()语句373.3.2 printf()语句383.3.3 sprintf()393.4 PHP支持的数据类型393.4.1 标量数据类型393.4.2 复合数据类型403.4.3 使用类型强制转换实现数据类型间的转换413.4.4 类型自动转换423.4.5 与类型有关的函数433.4.6 类型标识符函数433.5 标识符443.6 变量453.6.1 变量声明453.6.2 变量作用域463.6.3 PHP的超级全局变量493.6.4 变量的变量523.7 常量533.8 表达式533.8.1 操作数533.8.2 操作符543.9 字符串插入583.9.1 双引号583.9.2 单引号593.9.3 heredoc603.10 控制结构603.10.1 条件语句613.10.2 循环语句633.10.3 文件包含语句673.11小结69第4章 函数704.1 调用函数704.2 创建函数714.2.1 按值传递参数714.2.2 按引用传递参数724.2.3 默认参数值734.2.4 从函数返回值744.2.5 递归函数754.3 函数库774.4 小结78第5章 数组795.1 什么是数组795.2 创建数组805.2.1 用array()创建数组815.2.2 用list()提取数组815.2.3 用预定义的值范围填充数组825.2.4 测试数组835.3 添加和删除数组元素845.3.1 在数组头添加元素845.3.2 在数组尾添加元素845.3.3 从数组头删除值845.3.4 从数组尾删除元素855.4 定位数组元素855.4.1 搜索数组855.4.2 获取数组键865.4.3 获取数组值865.5 遍历数组875.5.1 获取当前数组键875.5.2 获取当前数组值875.5.3 获取当前数组键和值885.5.4 移动数组指针885.5.5 向函数传递数组值895.6 确定数组的大小和唯一性905.6.1 确定数组的大小905.6.2 统计数组元素出现的频度915.6.3 确定唯一的数组元素915.7 数组排序915.7.1 逆置数组元素顺序915.7.2 置换数组键和值925.7.3 数组排序925.8 合并、拆分、接合和分解数组965.8.1 合并数组965.8.2 递归追加数组975.8.3 连接两个数组975.8.4 拆分数组975.8.5 接合数组985.8.6 求数组的交集995.8.7 求关联数组的交集1005.8.8 求数组的差集1005.8.9 求关联数组的差集1005.9 其他有用的数组函数1015.9.1 返回一组随机的键1015.9.2 随机洗牌数组元素1015.10 小结103第6章 面向对象的PHP1046.1 OOP的好处1046.1.1 封装1046.1.2 继承1056.1.3 多态1056.2 关键的OOP概念1066.2.1 类1066.2.2 对象1076.2.3 字段1076.2.4 属性1096.2.5 常量1126.2.6 方法1126.3 构造函数和析构函数1166.3.1 构造函数1166.3.2 析构函数1186.4 静态类成员1196.5 instanceof关键字1206.6 辅助函数1206.7 自动加载对象1226.8 小结122第7章 高级OOP特性1237.1 PHP不支持的高级OOP特性1237.2 对象克隆1247.2.1 克隆示例1247.2.2 __clone()方法1257.3 继承1267.3.1 类继承1277.3.2 继承和构造函数1287.4 接口1307.4.1 实现一个接口1317.4.2 实现多个接口1327.5 抽象类1327.6 命名空间介绍1337.7 小结135第8章 错误和异常处理1368.1 配置指令1368.2 错误日志1388.3 异常处理1408.3.1 为什么异常处理很方便1418.3.2 PHP的异常处理实现1428.4 小结146第9章 字符串和正则表达式1479.1 正则表达式1479.1.1 正则表达式语法(POSIX)1479.1.2 PHP的正则表达式函数(POSIX扩展)1499.1.3 正则表达式语法(Perl风格)1529.2 其他字符串函数1589.2.1 确定字符串长度1589.2.2 比较两个字符串1589.2.3 处理字符串大小写1609.2.4 字符串与HTML相互转换1619.3 正则表达式函数的替代函数1659.3.1 填充和剔除字符串1719.3.2 字符和单词计数1729.4 使用PEAR:Validate_US1749.4.1 安装Validate_US1749.4.2 使用Validate_US1759.5 小结175第10章 处理文件和操作系统17610.1 了解文件和目录17610.1.1 解析目录路径17610.1.2 计算文件、目录和磁盘大小17810.1.3 确定访问和修改时间18110.2 文件处理18210.2.1 资源的概念18210.2.2 换行18210.2.3 识别文件末尾字符18210.2.4 打开和关闭文件18310.2.5 读取文件18410.2.6 将字符串写入文件18910.2.7 移动文件指针19010.2.8 读取目录内容19010.3 执行shell命令19110.4 系统级程序执行19310.4.1 清理输入19310.4.2 PHP的程序执行函数19410.5 小结196第11章 PEAR19711.1 流行的PEAR包19711.1.1 预安装的包19711.1.2 安装程序建议的包19811.2 PEAR的强大功能:数值格式转换19811.3 安装和更新PEAR19911.3.1 安装PEAR19911.3.2 PEAR和托管公司20011.3.3 更新PEAR20011.4 使用PEAR包管理器20111.4.1 查看安装的PEAR包20111.4.2 了解PEAR安装包的更多信息20111.4.3 安装PEAR包20211.4.4 将包包含到脚本中20311.4.5 升级PEAR包20411.4.6 卸载包20411.4.7 降级PEAR包20511.5 小结205第12章 日期和时间20612.1 UNIX时间戳20612.2 PHP的日期和时间库20612.2.1 验证日期20712.2.2 格式化日期和时间20712.2.3 将时间戳转换为用户友好的值21012.2.4 处理时间戳21112.3 日期函数21212.3.1 显示本地化的日期和时间21212.3.2 显示网页的最新修改日期21512.3.3 确定当前月份中的天数21612.3.4 确定任意给定月份的天数21612.3.5 计算当前日期后X天的日期21612.3.6 利用PEAR:创建日历21712.4 为PHP5.1 +用户提供的日期时间改进21912.4.1 DateTime构造函数简介22012.4.2 格式化日期22012.4.3 实例化后设置日期22012.4.4 实例化后设置时间22112.4.5 修改日期和时间22112.5 小结221第13章 表单22213.1 PHP和Web表单22213.1.1 简单示例22313.1.2 向函数传递表单数据22413.1.3 处理多值表单组件22513.2 充分利用PEAR:HTML_QuickForm22613.2.1 安装HTML_QuickForm22713.2.2 创建一个简单的表单22713.2.3 使用自动完成23113.3 小结232第14章 身份验证23314.1 HTTP验证概念23314.2 PHP验证23414.2.1 验证变量23414.2.2 有用的函数23514.3 PHP验证方法23614.3.1 硬编码的身份验证23614.3.2 基于文件的身份验证23614.3.3 基于数据库的身份验证23814.3.4 基于IP的身份验证23914.3.5 利用PEAR:Auth_HTTP24114.4 用户登录管理24314.4.1 用CrackLib库测试密码易猜性24314.4.2 一次性URL和密码恢复24514.5 小结247第15章 处理文件上传24815.1 通过HTTP协议上传文件24815.2 通过PHP上传文件24915.2.1 PHP的文件上传/资源指令24915.2.2 $_FILES数组25015.2.3 PHP的文件上传函数25115.2.4 上传错误消息25215.2.5 一个简单的示例25215.3 利用PEAR:HTTP_Upload25315.3.1 安装HTTP_Upload25315.3.2 上传文件25415.3.3 了解关于上传文件的更多信息25415.3.4 上传多个文件25515.4 小结256第16章 网络25716.1 DNS、服务器和服务25716.1.1 DNS25716.1.2 服务26116.1.3 建立套接字连接26116.2 邮件26316.2.1 配置指令26316.2.2 使用PHP脚本发送电子邮件26416.3 常见网络任务26816.3.1 连接服务器26916.3.2 创建端口扫描器26916.3.3 创建子网转换器27016.3.4 测试用户带宽27216.4 小结273第17章 PHP和LDAP27417.1 在PHP中使用LDAP27517.1.1 连接到LDAP服务器27517.1.2 获取LDAP数据27717.1.3 统计所获取的项28017.1.4 排序LDAP记录28117.1.5 插入LDAP数据28117.1.6 更新LDAP数据28217.1.7 删除LDAP数据28317.1.8 处理区分名28317.1.9 错误处理28417.2 小结285第18章 会话处理器28618.1 什么是会话处理28618.2 配置指令28818.2.1 管理会话存储介质28818.2.2 设置会话文件路径28818.2.3 自动启用会话28818.2.4 设置会话名称28918.2.5 选择cookie或URL重写28918.2.6 自动进行URL重写28918.2.7 设置会话cookie的生存期28918.2.8 设置会话cookie的有效URL路径28918.2.9 为启用会话的页面设置缓存方向29018.3 处理会话29118.3.1 开始会话29118.3.2 销毁会话29118.3.3 设置和获取会话ID29218.3.4 创建和删除会话变量29218.3.5 编码和解码会话数据29318.4 实际的会话处理示例29418.4.1 以返回用户的身份自动登录29418.4.2 生成最近浏览的文档索引29618.5 创建定制会话处理器29718.5.1 将定制会话函数加入到PHP逻辑29818.5.2 基于MySQL的定制会话处理器29818.6 小结302第19章 用Smarty模板化30319.1 什么是模板化引擎30319.2 Smarty介绍30519.3 安装Smarty30519.4 使用Smarty30619.5 Smarty的表现逻辑30819.5.1 注释30819.5.2 变量修饰符30819.5.3 控制结构31119.5.4 语句31519.6 创建配置文件31719.6.1 config_load31719.6.2 引用配置变量31719.7 结合Smarty使用CSS31819.8 缓存31919.8.1 处理缓存生命期32019.8.2 通过is_cached()消除处理开销32019.8.3 为每个模板创建多个缓存32119.8.4 关于缓存的结束语32219.9 小结322第20章 Web服务32320.1 为什么使用Web服务32320.2 RSS32420.2.1 理解RSS语法32620.2.2 MagpieRSS介绍32720.3 SimpleXML33420.3.1 加载XML33520.3.2 解析XML33620.4 SOAP33920.4.1 SOAP消息介绍33920.4.2 PHP的SOAP扩展介绍34020.5 小结346第21章 安全PHP编程34721.1 安全地配置PHP34721.1.1 安全模式34721.1.2 其他与安全有关的配置参数34921.2 隐藏配置细节35121.2.1 隐藏Apache35121.2.2 隐藏PHP35121.3 隐藏敏感数据35221.3.1 隐藏文档根目录35321.3.2 拒绝访问某些文件扩展名35321.4 清理用户数据35321.4.1 文件删除35421.4.2 跨网站脚本35421.4.3 清理用户输入:解决方案35521.4.4 利用PEAR:Validate35721.5 数据加密35921.5.1 PHP的加密函数35921.5.2 MCrypt包36121.6 小结362第22章 SQLite36322.1 SQLite介绍36322.1.1 安装SQLite36322.1.2 使用SQLite命令行界面36422.2 PHP的SQLite库36522.2.1 Sqlite.assoc_case=o|1|236522.2.2 打开连接36522.2.3 在内存中创建表36722.2.4 关闭连接36722.2.5 查询数据库36722.2.6 解析结果集36822.2.7 获取结果集细节37122.2.8 操作结果集指针37222.2.9 获取表的列类型37422.2.1 0操作二进制数据37522.2.1 1创建和覆盖SQLite函数37522.2.1 2创建聚集函数37722.3 小结378第23章 构建面向全世界的网站37923.1 用gettext翻译网站37923.1.1 第一步:更新网站脚本38023.1.2 第二步:创建本地化库38123.1.3 第三步:创建翻译文件38123.1.4 第四步:翻译文本38223.1.5 第五步:生成二进制文件38323.1.6 第六步:在脚本中设置所需语言38323.2 本地化日期、数字和时间38323.3 小结385第24章 MVC与Zend框架38624.1 MVC介绍38624.2 PHP的框架解决方案38824.2.1 CakePHP框架38824.2.2 Solar框架38924.2.3 symfony框架38924.2.4 Zend框架39024.3 Zend框架介绍39024.3.1 下载和安装Zend框架39124.3.2 创建第一个Zend框架驱动的网站39224.3.3 用Zend_Service_Yahoo搜索Web39724.4 小结398第25章 MySQL介绍40025.1 是什么让MySQL如此流行40025.1.1 灵活性40025.1.2 强大功能40125.1.3 灵活的许可选择40225.1.4 超级活跃的用户群体40325.2 MySQL的演进40325.2.1 MySQL440425.2.2 MySQL5.040425.2.3 MySQL5.1 40525.3 著名的MySQL用户40525.3.1 craigslist40525.3.2 维基百科40625.3.3 雅虎财经40625.4 小结406第26章 安装和配置MySQL40726.1 下载MySQL40726.2 安装MySQL40826.2.1 在Linux上安装MySQL40826.2.2 在Windows上安装并配置MySQL41126.3 设置MySQL管理员密码41326.4 启动和停止MySQL41326.4.1 手工控制守护进程41326.4.2 自动启动和停止MySQL41426.5 配置和优化MySQL41626.5.1 mysqld_safe包装程序41626.5.2 MySQL的参数配置和优化41726.5.3 my.cnf文件42026.6 配置PHP与MySQL协作42226.6.1 在Linux上重新配置PHP42226.6.2 在Windows上重新配置PHP42226.7 小结422第27章 MySQL客户端42327.1 命令行客户端介绍42327.1.1 mysql客户端42327.1.2 mysqladmin客户端43127.1.3 其他有用的客户端43227.1.4 客户端选项43527.2 MySQL的GUI客户程序43727.2.1 安装GUITools43727.2.2 MySQL管理器43727.2.3 MySQL查询浏览器43827.2.4 MySQL移植工具集43927.3 phpMyAdmin43927.4 小结440第28章 MySQL存储引擎和数据类型44128.1 存储引擎44128.1.1 MyISAM44228.1.2 InnoDB44328.1.3 MEMORY44428.1.4 MERGE44528.1.5 FEDERATED44528.1.6 ARCHIVE44628.1.7 CSV44728.1.8 EXAMPLE44728.1.9 BLACKHOLE44728.1.1 0存储引擎FAQ44828.2 数据类型和属性44928.2.1 数据类型44928.2.2 数据类型属性45328.3 操作数据库和表45528.3.1 操作数据库45528.3.2 操作表45728.3.3 更改表结构45928.3.4 INFORMATION_SCHEMA46028.4 小结462第29章 保护MySQL的安全46329.1 首先应当做什么46329.2 保护mysqld守护进程46429.3 MySQL访问权限系统46529.3.1 权限系统的工作方式46529.3.2 访问信息存储在哪里46629.4 用户和权限管理47329.4.1 创建用户47429.4.2 删除用户47429.4.3 重命名用户47429.4.4 GRANT和REVOKE命令47529.4.5 查看权限47929.5 限制用户资源47929.6 保护MySQL连接48029.6.1 授权选项48029.6.2 SSL选项48129.6.3 启动启用SSL的MySQL服务器48229.6.4 使用启用SSL的客户端进行连接48229.6.5 在my.cnf文件中存储SSL选项48229.7 小结483第30章 结合使用PHP与MySQL48430.1 进行安装的预备工作48530.1.1 在Linux/UNIX中启用mysqli扩展48530.1.2 在Windows中启用mysqli扩展48530.1.3 管理用户权限48530.1.4 处理示例数据48530.2 使用mysqli扩展48630.2.1 建立和断开连接48630.2.2 处理连接错误48730.2.3 获得错误信息48730.2.4 在单独的文件中存储连接信息48830.2.5 保护连接信息48930.3 与数据库交互48930.3.1 向数据库发送查询48930.3.2 解析查询结果49230.3.3 确定所选择的行和受影响的行49330.3.4 处理准备语句49430.4 执行数据库事务49930.4.1 启用自动提交模式49930.4.2 提交事务49930.4.3 回滚事务49930.5 小结499第31章 PDO介绍50031.1 为什么还要另一种数据库抽象层50131.2 使用PDO50131.2.1 安装PDO50231.2.2 PDO的数据库选项50331.2.3 连接到数据库服务器并选择数据库50331.2.4 错误处理50531.2.5 获取和设置属性50631.2.6 查询执行50731.2.7 准备语句介绍50831.2.8 获取数据51131.2.9 设置绑定列51331.2.1 0处理事务51431.3 小结515第32章 存储例程51632.1 应当使用存储例程吗51632.1.1 存储例程的优点51632.1.2 存储例程的缺点51732.2 MySQL如何实现存储例程51732.2.1 存储例程权限表51732.2.2 创建存储例程51932.2.3 声明和设置变量52132.2.4 执行存储例程52232.2.5 创建和使用多语句存储例程52232.2.6 从另一个例程中调用例程52932.2.7 修改存储例程53032.2.8 删除存储例程53032.2.9 查看例程状态53032.2.1 0查看例程的创建语法53232.2.1 1条件处理53232.3 将例程集成到Web应用程序53232.3.1 创建员工奖金界面53332.3.2 获取多条记录53332.4 小结534第33章 MySQL触发器53533.1 介绍触发器53533.1.1 为什么使用触发器53533.1.2 在事件前采取行动53633.1.3 在事件后采取行动53633.1.4 前触发器和后触发器53733.2 MySQL对触发器的支持53733.2.1 创建触发器53833.2.2 查看现有的触发器53933.2.3 修改触发器54133.2.4 删除触发器54133.3 将触发器集成到Web应用程序54133.4 小结542第34章 视图54334.1 介绍视图54334.2 MySQL对视图的支持54434.2.1 创建和执行视图54434.2.2 查看视图信息54934.2.3 修改视图55034.2.4 删除视图55034.2.5 更新视图55134.3 将视图结合到Web应用程序中55134.4 小结553第35章 实用数据库查询55435.1 示例数据55435.2 用PEAR创建表格输出55535.2.1 安装HTML_Table55535.2.2 创建一个简单表55635.2.3 创建更可读的行输出55735.2.4 根据数据库数据创建表55835.2.5 一般化输出过程55935.3 排序输出56235.4 创建分页输出56335.5 列出页码56635.6 用子查询查询多个表56735.6.1 用子查询完成比较56835.6.2 用子查询确定存在性56835.6.3 用子查询维护数据库56935.6.4 在PHP中使用子查询57035.7 用游标迭代结果集57035.7.1 游标基础57035.7.2 创建游标57135.7.3 打开游标57135.7.4 使用游标57135.7.5 关闭游标57235.7.6 在PHP中使用游标57335.8 小结573第36章 索引和搜索57436.1 数据库索引57436.1.1 主键索引57436.1.2 唯一索引57536.1.3 常规索引57636.1.4 全文索引57836.1.5 索引最佳实践58136.2 基于表单的搜索58136.2.1 执行简单搜索58136.2.2 扩展搜索功能58236.2.3 执行全文搜索58436.3 小结585第37章 事务58637.1 什么是事务58637.2 MySQL的事务功能58737.2.1 系统需求58737.2.2 表创建58737.3 示例项目58837.3.1 创建表并添加示例数据58837.3.2 执行示例事务58937.3.3 备份和恢复InnoDB表59037.3.4 用法提示59137.4 用PHP构建事务应用程序59137.5 小结593第38章 导入和导出数据59438.1 示例表59438.2 使用数据定界59538.3 导入数据59538.3.1 利用LOADDATAINFILE导入数据59538.3.2 用mysqlimport导入数据59838.3.3 用PHP加载表数据60038.4 导出数据60138.5 小结603
章节摘录
插图:第1章PHP概述从许多方面来看,PHP语言都是开源项目的典型代表,最初创建它只是为了满足一个开发人员自己的需要,在此之后又由于日益扩大的PHP社区的需求而不断改进。作为一个刚刚涉足这个领域的开发人员,对PHP的发展历程有所了解是很重要的,因为它能帮助你体会到这种语言的优势,另外从某种程度上还可以理解'PHP是如何偶然地形成其独有特性的。而且,由于这种语言如此流行,如果能了解不同版本之间的差别(尤其是版本4、5和版本6),在针对你自己的需求评价Web托管提供商和PHP驱动的应用程序时会有很大帮助。为了帮助你尽快入门,这一章将介绍PHP的特性和不同版本之间的差别,你将了解到:口一个由加拿大开发人员开发的网页的访问量计数器如何造就了世界上最流行的脚本语言之口PHP的开发人员怎样一次次地改进这种语言,最终发布了迄今为止的最佳版本——PHP5;口为什么PHP6将使:PHP在企业中的应用范围进一步扩大;口PHP的哪些特性吸引了程序员新手和专业程序员。1.1历史最初的PHP要追溯到1995年,当时一个名叫RasmusLerdor肭独立程序员开发了一个:Perll/CGI脚本,用来了解有多少访问者阅读了他的在线简历。他的脚本执行两项任务:将访问者信息记入日志,显示网页访问者的数量。Web虽然现在已经家喻户晓,但在当时却很年轻,所以类似的工具以前从未有过,于是有不少人向Lerdor跋送电子邮件咨询他的这个脚本。自此,Lerdor研始分发他的工具集,并称之为个人主页(PHP,PersonalHomePage),这是PHP的第一个名字。
媒体关注与评论
PHP&MySQL开发新圣经,Amazon PHP畅销书,涵盖PHP&MySQL最新版。“一句话,想学习PHP,就买这本书吧。” ——JavaRanch.com“这是PHP与MySQL宝典!一本在手别无他求。单单书中的例子就已经物超所值。” ——Amazon.com
编辑推荐
《PHP与MySQL程序设计(第3版)》对PHP语言和MySQL数据库这两种开源技术已经成为开发Web应用的最佳组合。Web 2.0为它们提供了更广阔的天地。《PHP与MySQL程序设计(第3版)》是久负盛名的经典著作。以内容全面、讲解翔实而著称。书中主题的选取和组织从实用出发,在讲述知识之外还加入了作者多年积累的宝贵实战经验,并提供了500多个可以直接用于实际项目的代码示例。充分体现了作者深厚的开发功力。这一版不仅对原有章节进行了全面的修订、更新和改进,还加入了PHP 6和MySQL最新版本中的新特性,包括开发强大Web应用的利器MVC模式与Zend框架,还介绍了如何利用国际化和本地化开源工具创建面向全世界的Web网站。《PHP与MySQL程序设计(第3版)》不仅适合初中级程序员快速入门与提高,也是有经验程序员必备的参考书。作者为《PHP与MySQL程序设计(第3版)》专门开设了配套网站http://www.beginningphpandmysql.com,也可以通过Twitter(http://twitter.Com/begphpandmysql)了解更多信息。
图书封面
图书标签Tags
无
评论、评分、阅读与下载