标题：PHP5应用实例详解
图书信息
书名：PHP5应用实例详解 : 使用Zend Framework&Smarty构筑真正的MVC模式应用
作者：王志刚，朱蕾 编著  ISBN  978-7-121-11433-5
出版日期：2010年9月 
定价：69.00元
开本：16开 
页码：564页
内 容 简 介
PHP5现在的性能可以说已经超过上一个版本PHP4了，它强化了面向对象编程的概念，同时有了Zend Framework & Smarty这个强大的组合，使用PHP也可以构筑MVC模式的应用系统了。
本书讲述简单、直接且有效，更可贵的是非常注重实用性，所以它适合所有PHPer当做案头必备学习参考用书。无论您是刚刚入门的新兵，还是有一定编程基础的中级读者，一定会从这本书中收获良多。
作者简介
1998年大学毕业后进入青岛海尔集团，经历过中国IT泡沫那个激动人心的时代。二十世纪初由于工作的原因渡日，历经程序员、系统工程师、项目经理、开发部长等职务，在十二年的开发生涯中，参加过日立，富士通等公司主导的大型项目开发，也取得过如获得日本国专利等小小成绩。
2005年后单独创业，公司和本人对最新软件技术的倾注了很大的精力，如很早就开始对当前热门的Objective-C，jQuery等技术的跟踪，本人擅长各种如PHP，Java等应用开发技术，也积累不少大型项目的开发经验，并尝试着能与他人分享。
前  言
笔者从业十几年以来，大部分的时间都是使用Java来进行应用程序的开发的。大家都知道Java有优良的跨平台性（Windows、UNIX环境皆宜），因其为面向对象语言，所以代码具有良好的可维护性，且可重复使用。自从出现了Struts等框架（Framework）技术，引入了MVC模式的编程概念后，在进一步提高系统的可维护性的同时，也提供了开发的效率。因此很多应用系统采用Java来开发。
但是，对于那些中小系统来说，维持运行Java应用程序（包括服务器租用或专线租用，各种应用软件）的费用，相对来说太昂贵。尤其与PHP应用程序的费用相比，要高出不少。可以找很多便宜的支持PHP的租用服务器，但很难找到便宜的可运行Java应用的租用服务器。而且使用Java进行开发时，要比想象的费时费力。因此，对于中小应用系统来说，我个人觉得选择PHP比Java更明智。
自2004年7月发布PHP5至今，已经过了5年多了。PHP的运行环境已经与过去有很大的不同了。当初一些人可能对PHP5的性能有些微词，随着PHP5升级到PHP5.1、PHP5.2，性能上有了巨大的改善。PHP5现在的性能可以说已经远远超过上一个版本PHP4了。对于个人用户，或一些中小应用系统来说，很多服务器空间提供商提供对PHP5、MySQL、PostgreSQL等的支持，可以利用这些资源快速的构筑自己的网络应用系统。
PHP5中强化了面向对象编程的概念，同时有了Zend Framework & Smarty这个强大的组合，使用PHP也可以构筑MVC模式的应用系统了。由于PHP的易学性，使用PHP构筑MVC模式的应用系统比Java更有优势，特别是对于中小企业而言。尽管很多人对PHP还存在些安全疑虑，但我个人认为PHP是比Java更有前途的语言，特别适合我们国家的国情，可以帮助中小企业使用它推进自己的信息化。这正是笔者当初着手编写这本书的主要原因。
本书除了提供许多可以立即导入到自己的应用程序中使用的应用实例外，花了大量的篇幅（第4章的一部分，第5章）介绍如何使用Zend Framework & Smarty构筑真正的MVC模式应用系统—书签共享系统。整个论述从基础知识开始，包括系统分析、共通功能的提炼，到最后的系统合成，循序渐进。相信只要理解了本书实例以及其中介绍的内容，应该可以使用Zend Framework & Smarty来构筑自己的MVC模式的应用程序了。
本书的相关代码以及相应的开源软件可以从下载得到。
朱蕾参加了本书第1章，第2章，第3章的编写。另外，在此特别感谢我的岳父，岳母在本书编写过程中的大力支持。编著者
2010年5月
目  录
第1章  导言
1.1  PHP技术的由来 1
1.1.1  服务器端脚本的发展轨迹——服务器端技术以前的技术 1
1.1.2  服务器端脚本的发展轨迹——CGI的时代 3
1.1.3  服务器端脚本轨迹——服务器端脚本 5
1.1.4  各种服务器技术的比较 6
1.2  PHP的发展 8
1.3  PHP基本运行环境的设定 10
1.3.1  Web服务器 11
1.3.2  应用程序构架 12
1.3.3  Linux环境中的基本环境配置 14
1.3.4  Windows环境中的基本环境配置 23
1.3.5  Linux/Windows共同的基本环境设置 39
1.4  PHP/MySQL的基础知识 40
1.4.1  PHP基础知识 40
1.4.2  面向对象语法 45
1.4.3  PEAR的基础知识 48
1.4.4  MySQL的基本知识 49
第2章  PHP的基本应用
2.1  统计在线人数 53
2.2  下载图片 56
2.3  下载网页包含的所有图片 61
2.4  文件上传 72
2.5  动态生成静态HTML网页代码 76
2.6  使用加密函数 81
2.7  简单公开文件服务器中的文档 85
2.8  构筑简易的记事本系统 91
2.9  构筑邮件送信的调查表单（Form） 96
第3章  构筑简单的数据库应用程序
3.1  记录每页的浏览数 101
3.2  图形化访问计数器 107
3.3  在数据库中存储Session信息 111
3.4  构筑简单的网络调查程序系统 117
3.5  下载表数据 125
3.6  管理系列网络内容 129
3.7  动态生成网络书籍的目录 132
3.8  提供REST形式的API 135
3.9  利用数据库保存图片 138
第4章  灵活应用PEAR与Zend Framework
4.1  Zend_Mail：构筑邮件送信表单 143
4.2  Zend_Mail：通过Web浏览器接受邮件 147
4.3  PEAR::Mail_Queue大量邮件批量送信 151
4.4  PEAR::Text_Highlighter高亮度显示代码 156
4.5  Zend_Translate/Zend_Date：构筑支持多语言的网页 160
4.6  FPDF/PFI：动态生成PDF形式的报表 164
4.7  PEAR:SpreadSheet_Excel_Writer：根据数据库数据动态生成Excel报表169
4.8  FeedCreator：以RSS的形式发布网页更新信息 173
4.9  MagpieRss导入其他网站公开的RSS 178
4.10  JpGraph——由数字数据动态生成图表 182
4.11  PEAR::Text_CAPTCHA——实现垃圾信息对策程序 185
4.12  QRcode PERL & PHP scripts动态生成QR代码 189
4.13  Zend_Http实现引用通告功能 193
4.14  Zend_Service_Amazon 利用Amazon Web服务实现畅销书的表示 196
4.15  PEAR::HTML_AJAX 利用Google Maps API实现地图检索系统 201
4.16  Smarty——应用模板引擎更有效地管理外观 210
4.17  Zend_Controller/Zend_View——在PHP中构筑MVC模式的应用程序 214
第5章  用Zend Framework与Smarty构筑真正的MVC模式应用
5.1  MVC 设计模式简介 224
5.2  系统分析 227
5.3  共通功能：使用Zend_Db/Zend_Config建立数据库连接的共同界面 229
5.4  共通功能：使用JavaScript进行输入数据的检查 232
5.5  共通功能——使用Zend_Validate进行输入数据的检查 238
5.6  共通功能——使用master页统一管理页面外观 247
5.7  共通功能——由Zend_Auth实现的用户认证功能 259
5.8  共通功能——统一管理各个页面的标题与关键字（SEO对策） 274
5.9 共通功能——由PEAR::HTML_
Menu&Zend_Cache实现的动态清晰的网站导航菜单 277
5.10  共通功能——由Zend_Log
实现的共同错误提示页与履历输出功能 290
5.11  共通功能——利用别名，
隐藏网页真实路径 294
5.12 共享书签系统——概要 299
5.13  共享书签系统——追加新书签 301
5.14  书签共享系统——个人收藏夹的管理 318
5.15  书签共享系统——书签详细 337
5.16  书签共享系统——实现标签云（PEAR::HTML_TagCloud） 351
5.17  书签共享系统——个人朋友列表 356
5.18  书签共享系统——书签检索 363
5.19  书签共享系统——修改书签系统设置 371
5.20  书签共享系统——首页、书签分类一览及其RSS Feed 385
5.21  站内留言系统概要 400
5.22  站内留言系统——写成并发送留言 402
5.23  站内留言系统——留言一览（收件箱、草稿箱、送件箱、垃圾箱） 409
5.24  站内留言系统——留言检索 417
附录A  文件系统函数
A.1  路径函数 423
附录B  网络函数篇
B.1  HTTP关联函数 460
B.2  Session处理函数 463
B.3  URL函数 465
附录C  数据操作函数
C.1  PDO函数 467
C.2  SimpleXML函数 475
C.3  XMLReader函数 481
C.4  XMLWriter函数 486
C.5  XSL函数 488
C.6  Image函数 490
附录D  其他函数
D.1  选项与信息 504
D.2  JSON函数 509
D.3  程序执行函数 510
D.4  错误处理/履历记录函数 511
D.4  其他函数 514
附录E  设置文件
附录F  Smarty
F.1  Smarty类 525
F.2  变量的调节符 531
F.3  模板函数 534
索引 544