ITPub博客

首页 > Linux操作系统 > Linux操作系统 > PHP和MySQL Web开发

PHP和MySQL Web开发

原创 Linux操作系统 作者:hzbook2008 时间:2011-06-13 14:22:52 0 删除 编辑

PHP和MySQL Web开发(原书第4版)【入门级神作,享誉全球的开发圣经】

欢迎来到PHP和MySQL Web开发的世界。在本书中,你将学习我们在使用PHP和MySQL中得到的经验精华。同时,PHP和MySQL也是目前最热门的两个Web开发工具。

  在前言中,我们将介绍:
  ■ 为什么要学习本书
  ■ 使用本书将学习到哪些知识
  ■ PHP和MySQL都是什么及其伟大之处
  ■ PHP和MySQL最新版本的变化
  ■ 本书的组织结构

为什么要学习本书

  本书将介绍如何创建可交互的Web站点,包括从最简单的订单表单到复杂的安全电子商务站点,甚至是交互式的Web 2.0网站。而且,读者还将了解如何使用开源技术来实现它。
   本书的目标读者群是已经了解了HTML基础知识,并且以前曾经使用过一些现代编程语言进行过程序开发的读者。但是这并不要求读者从事过Internet 编程或者使用过关系数据库。如果你是入门级程序员,你将发现本书还是非常有用的,但是你可能会需要更长的时间来吸收和消化它。我们尽量做到不遗漏任何基本 概念,但是我们在介绍这些基本概念的时候都比较简略。本书的典型读者是希望掌握PHP和MySQL并致力于创建大型或电子商务类型Web站点的人。有些读 者可能已经使用过另一种Web开发语言,如果是这样的话,就更容易掌握本书的内容。
  我们编写本书第1版的原因在于,我们已经厌倦了寻找那些 充其量只是基本的PHP函数参考的图书。那些图书是有用的,但是当你的老板或客户说“赶快给我编写一个购物车”时,那些图书无法帮助你。我们尽量使本书中 的每一个例子都有实用价值。许多示例代码可以在Web站点上直接使用,而大多数代码只要稍微经过修改就可以直接使用。

使用本书将学习到哪些知识

   学习了本书以后,读者将能够创建实用的动态Web站点。如果读者已经使用普通的HTML创建Web站点,将意识到这种方法的局限性。一个纯HTML网站 的静态内容就只能是静态的。除非专门对其进行了更新,否则其内容将不会发生变化。用户也无法以任何形式与站点进行交互。
  使用一种编程语言(例如,PHP)和数据库(例如,MySQL),可以创建动态的站点:你可以自定义站点并且在站点中包含实时信息。
  在本书中,我们花费了大量的精力来介绍实用的应用程序。我们从一个简单的在线订购系统开始,然后介绍PHP和MySQL的不同部分。
  我们将讨论与创建一个实用Web站点相关的电子商务和安全性方面的问题,并且介绍如何使用PHP和MySQL来实现这些方面。
  在本书的最后部分,我们将介绍如何实现实际项目,并且和读者一起设计、计划并且构建如下项目:
  ■ 用户身份验证和个性化设置
  ■ 购物车
  ■ 基于Web的电子邮件
  ■ 邮件列表管理器
  ■ Web论坛
  ■ PDF文档的生成
  ■ 使用XML和SOAP连接Web服务
  ■ 使用Ajax构建Web 2.0应用程序
  这些项目都是可以直接使用的,或者可以经过一定的修改来满足读者的实际需要。我们选择这些项目是因为我们相信这8个项目是程序员创建基于Web应用程序时最常见的项目。如果读者的需要有所不同,本书也可以帮助读者实现目标。

什么是PHP

  PHP是一种服务器端脚本语言,它是专门为Web而设计的。在一个HTML页面中,你可以嵌入PHP代码,这些代码在每次页面被访问时执行。PHP代码将在Web服务器中被解释并且生成HTML或访问者看到的其他输出。
   PHP是1994年出现的,最初只是Rasmus Lerdorf一个人的工作成果。其他一些天才改进了这种语言,它经历了4次非常重要的重新编写,才变成了我们今天所看到的广为使用的、成熟的PHP。到 2007年11月,PHP已经在全球的2100多万个网站域中安装,而且该数字还在不断地快速增长。访问http://www.php.net /usage.php站点,你可以获得当前的确切数据。
  PHP是一个开放源代码的产品,这就意味着,你可以访问其源代码,也可以免费使用、修改并且再次发布。
  PHP最初只是Personal Home Page(个人主页)的缩写,但是后来经过修改,采用了GNU命名惯例(GNU = Gnu誷 Not UNIX),如今它是PHP超文本预处理程序的缩写。
  目前,PHP的主要版本是第5版。该版本的Zend引擎经过了完全的重写,而且还实现了一些主要的语言改进。
  PHP的主页是:http://www.php.net。
  Zend Technologies的主页是:http://www.zend.com。

MySQL是什么

  MySQL是一个快速而又健壮的关系数据库管理系统(RDBMS)。
   一个数据库将允许你高效地存储、搜索、排序和检索数据。MySQL服务器将控制对数据的访问,从而确保多个用户可以并发地使用它,同时提供了快速访问并 且确保只有通过验证的用户才能获得数据访问。因此,MySQL是一个多用户、多线程的服务器。它使用了结构化查询语言(SQL),这是全球通用的标准数据 库查询语言。MySQL是在1996年公布的,但是其开发历史可以追溯到1979年。它是世界上最受欢迎的开源数据库,已经多次获得《Linux Journal》杂志的读者选择奖。
  MySQL可以通过一个双许可模式获得。我们可以在开源许可(GPL)下使用它,条件是你需要满足该协议的一些条款。如果希望发布一个包括MySQL的非GPL应用程序,可以购买一个商业许可。

为什么要使用PHP和MySQL

  当我们准备创建一个站点时,可以选择使用许多不同的产品。
  你必须选择如下:
  ■ Web服务器所需的硬件
  ■ 操作系统
  ■ Web服务器软件
  ■ 数据库管理系统
  ■ 编程语言或脚本语言
  这些产品的选择具有相互的依赖性。例如,并不是所有操作系统都可以在所有硬件上运行,并不是所有Web服务器都支持所有编程语言。
  本书中,我们没有也不需要更多地关注硬件、操作系统、Web服务器软件。其中一个最主要的原因是PHP和MySQL能在所有主流操作系统和许多非主流系统中运行。
  大部分PHP代码可以在操作系统和Web服务器之间导入/导出。某些PHP函数是与操作系统的文件系统相关,但是在本书中,我们尽量标识出这些函数。
  无论选择何种硬件、操作系统和Web服务器,我们相信你会认真考虑使用PHP和MySQL。

PHP的一些优点

  PHP的主要竞争对手是Perl、Microsoft ASP.NET、Ruby(on Rails或其他)、JavaServer Pages(JSP)和ColdFusion。
  与这些产品比较,PHP具有很多优点,如下所示:
  ■ 高性能
  ■ 可扩展性
  ■ 与许多不同数据库系统的接口
  ■ 内置许多常见Web任务所需的函数库
  ■ 低成本
  ■ 容易学习和使用
  ■ 对面向对象的高度支持
  ■ 可移植性
  ■ 开发方法的灵活性
  ■ 源代码可供使用
  ■ 技术支持和文档可供使用
  接下来我们将详细介绍这些优点。
  性能
  PHP的速度非常快。使用一个单独的廉价的服务器,就可以满足每天几百万的点击。
  Zend Technologies(http://www.zend.com)公司发布的评测表明PHP的性能要优于其竞争产品。
  扩展性
  PHP具有Rasmus Lerdorf经常提到的“shared-nothing”架构。这就意味着,你可以有效并廉价地对大量服务器进行水平方向扩展。
  数据库集成
   对于许多数据库系统来说,PHP都具有针对它们的内置连接。除了MySQL之外,你可以直接连接到PostgreSQL、mSQL、Oracle、 dbm、FilePro、Hyperwave、Informix、InterBase和Sybase数据库。PHP 5还提供了针对普通文件(平面文件)的内置SQL接口,名为SQLite。
  使用开放式数据库连接标准(ODBC),可以连接到任何提供了ODBC驱动程序的数据库。
  这包括Microsoft产品和许多其他产品。
  除了本机函数库,PHP还提供了数据库访问抽象层,名为PHP数据库对象(PDO),它提供了对数据的一致性访问,并且倡导了安全的编码实践。
  内置的函数库
  由于PHP是为Web开发而设计的,它提供了许多内置函数用来执行有用的Web任务。
  它可以生成一个图像、连接到Web服务和其他网络服务、解析XML、发送电子邮件、使用cookie以及生成PDF文档,所有这些任务只需要非常少的几行代码。
  成本
  PHP是免费的,用户可以在任何时候从http://www.php.net站点免费下载最新版本。
  容易学习PHP
  PHP的语法是基于其他编程语言的,主要是C和Perl。如果读者已经了解了C或Perl,或者其他类似C的语言,例如C++或Java,那么几乎立即就可以高效地使用PHP。
  对面向对象的支持
   PHP版本5具有设计良好的面向对象特性。如果读者学习了使用Java或C++进行编程,将发现所期望的一些特性(和常见语法),例如继承、私有和受保 护的属性和方法、抽象类和方法、接口、构造函数和析构函数。读者还将发现一些不常见的特性,例如迭代器。该功能的一部分可以在PHP版本3和版本4中获 得,但是版本5中具有更全面的面向对象支持功能。
  可移植性
  PHP在许多不同的操作系统中都可以使用。我们可以在类似于UNIX的 免费操作系统中(例如FreeBSD和Linux)编写PHP代码,也可以在商业性的UNIX版本(例如Solaris和IRIX,Mac OS X)或者在Microsoft Windows的不同版本中编写代码。
  通常,代码不经过任何修改就可以在运行PHP的不同系统中运行。
  开发方法的灵活性
  PHP允许实现简单的任务,同样,也很容易应用到大型应用程序的实现,例如使用基于设计模式的框架(例如,模型-视图-控制器,MVC)。
  源代码
  我们可以访问PHP的所有源代码,与商业性的封闭式源代码产品不同,如果要在该语言中进行修改或者添加新特性,可以免费进行。
  我们无须等待开发商来发布补丁,也不需要担心开发商倒闭或者决定停止对一个产品的支持。
  可供使用的技术支持和文档
  Zend Technologies(www.zend.com)公司,实现PHP的后台引擎公司,通过提供商业性技术支持和相关的软件为PHP开发提供支持。
  PHP文档和社区都非常成熟,有大量的共享信息资源。
  PHP 5.0的新特性
  最近,读者可以从PHP 4.x版本转移到PHP 5.0版本。正如读者期望的那样,在一个新的主要版本中,它做出了一些重要变更。在这个版本中,PHP后台的Zend引擎经过了完全的重写。主要的新特性如下:
  ■ 通过一个完整的新的对象模型提供了更好的面向对象支持(请参阅第6章)。
  ■ 可扩展和可维护的错误处理—异常(请参阅第7章)。
  ■ XML数据的简单处理—SimpleXML(请参阅第33章)。
  其他变化还包括在PHP的默认安装中去除了一些扩展,并且将这些扩展放入PECL库中,改进了对流的支持以及添加了SQLite。
  本书在编写时,PHP 5.2是当前最新版本,而5.3也将要发布。PHP 5.2添加了大量有用的特性,如下所示:
  ■ 新的输入过滤扩展,适用于安全性问题
  ■ JSON扩展,更好的Javascript交互
  ■ 文件上传进度跟踪
  ■ 更好的日期和时间处理
  ■ 客户端函数库的大量更新,性能改进(包括Zend引擎中,更好的内存管理)和Bug修复
  PHP 5.3的关键特性
   你可能听说了PHP最新的主要发布版本PHP 6。在本书编写时,PHP 6还未发布,一些主机服务提供商还不会安装它。但是,PHP 6中的一些关键特性可以追溯到PHP 5.3版本,事实上,5.3是一个小版本的发布,基本上通过了可接受性测试,因此一些主机服务提供商安装了它(当然,如果你是主机管理员,可以安装任何喜 欢的版本)。
  PHP 5.3中的一些新特性如下所示(相关特性的介绍也会在本书的适当章节给出):
  ■ 名称空间的增加。更多信息,请参阅http://www.php.net/language.namespaces。
  ■ intl扩展的增加,它为应用程序的国际化提供帮助,更多信息,请参阅http://www.php. net/manual/en/intro.intl.php。
  ■ phar扩展的增加,它应用于创建自包含PHP应用包。更多信息,请参阅http://www.php. net/book.phar。
  ■ fileinfo扩展的增加,它应用于文件处理的改进。更多信息,请参阅http://www.php. net/manual/en/book.fileinfo.php。
  ■ sqlite3扩展的增加,它应用于SQLite嵌入式SQL数据库引擎。更多信息,请参阅http://www.php.net/manual/en/class.sqlite3.php。
  ■ 支持MySQLnd驱动程序,替代了libmysql;更多信息,请参阅http://forge.mysql.com/ wiki/PHP_MYSQLND。
  虽然以上包含了PHP 5.3版本的重要特性,但是该版本还包括了大量Bug修复以及对已有功能的改进,例如:
  ■ 删除了对早于Windows 2000的Windows操作系统的支持(例如,Windows 98和NT 4)。
  ■ 确保PCRE、 Reflection和 SPL扩展的启用。
  ■ 增加一些日期和时间函数,更方便于日期计算和处理。
  ■ 改进了crypt()、hash()和md5()函数的功能以及OpenSSL扩展。
  ■ 改进了php.ini管理和处理,包括更好的错误报告。
  ■ 继续对Zend引擎进行调优,实现更好的PHP运行时速度和内存的使用。

MySQL的一些优点

  MySQL的主要竞争产品包括PostgreSQL、Microsoft SQL Server和Oracle。MySQL具有许多优点,如高性能、低成本、易于配置和学习、可移植性、源代码可供使用、技术支持可供使用等,接下来,我们将详细介绍这些优点。
  性能
   不可否认,MySQL的速度是非常快的。在http://web.mysql.com/benchmark.html站点,你可以找到许多开发人员的评 测页面。这些评测结果表明MySQL的运行速度比其竞争产品要快很多。在2002年,《eWeek》杂志发布了一个关于实现Web应用程序的5个数据库的 评测结果。最佳结果是MySQL和成本昂贵得多的Oracle。
  低成本
  在开放源代码许可下,MySQL是免费的,而在商业许可下,MySQL也只需要很少的费用。
  如果读者希望将MySQL作为应用程序的一部分重新发布,并且不希望在开放源代码许可下授权应用程序,那么必须获得一个商业许可。如果读者并不打算发布应用程序(适用于大多数Web应用程序)或者只开发免费软件,那么就不需要购买许可。
  便于使用
  大多数现代数据库都使用SQL。如果读者曾经使用过其他RDBMS,就会很容易使用MySQL。MySQL的安装也比其他类似产品的安装要简单。
  可移植性
  MySQL可以在许多不同的UNIX系统中使用,同时也可以在Microsoft的Windows系统中使用。
  源代码
  和PHP一样,读者可以获得并修改MySQL的源代码。对大多数用户来说,在大多数情况下这一点并不重要,但是它消除了后顾之忧,可以确保未来的持续性,并且提供了紧急情况下的选择。
  技术支持可供使用
  并不是所有开放源代码产品都有一家母公司,来提供技术支持、培训、顾问和认证,但是读者可以从MySQL AB获得所有这些服务(www.mysql.com)。
  MySQL 5.0的新特性
  MySQL 5.0版本新引入的主要变化包括:
  ■ 视图
  ■ 存储过程(请参阅第13章)
  ■ 基本触发器的支持
  ■ 对游标的支持
  其他变化还包括多个ANSI标准的兼容以及速度的改进。如果读者还是使用MySQL服务器的早期4.x版本或3.x版本,应该知道如下特性已经陆续加入到了4.0以后的版本:
  ■ 对子查询的支持
  ■ 用于存储地理数据的GIS类型
  ■ 对国际化的改进支持
  ■ 作为标准,引入了InnoDB这个事务安全的存储引擎
  ■ MySQL查询缓存,极大提高了Web应用程序通常会执行的重复查询速度
  本书所使用的示例是基于MySQL 5.1(Beta Community版本)。这个版本还添加了如下支持:
  ■ 分区
  ■ 基于行的复制
  ■ 事件调度
  ■ 将日志保存于表
  ■ MySQL群集、信息模式、备份过程的改进以及大量的Bug修复

本书的组织结构

  本书分为5个部分(除此之外,还有“附录”):
   第一篇“使用PHP”,通过一些示例概述了PHP语言的主要部分。每一个例子都是在构建实际电子商务站点时可能用到的例子。在第一篇中,第1章是 “PHP快速入门教程”。如果读者已经使用过PHP,可以跳过这一章。如果读者是第一次使用PHP或者是入门程序员,那么可能需要花一些时间在这一章上。 如果读者非常熟悉PHP,但却不是很了解PHP 5,可能会希望阅读第6章,因为在PHP 5中,面向对象功能有了非常明显的变化。
  第二篇“使用MySQL”,将介绍一些概念和设计,包括使用关系型数据库系统(例如MySQL)、使用SQL、使用PHP连接MySQL数据库以及MySQL的高级技术(例如,安全性和优化)的使用。
  第三篇“电子商务与安全性”,介绍了使用任何语言开发电子商务站点所涉及的一些常见问题。我们还将介绍如何使用PHP和MySQL来进行用户身份验证,以及安全地搜集、传输和保存数据。
  第四篇“PHP的高级技术”,提供了PHP中一些主要内置函数的详细介绍。我们选择了一些在创建站点时可能用到的函数库进行介绍。读者将学习如何与服务器进行交互、如何与网络进行交互、图像的生成、时间和数据的操作以及会话变量。
  第五篇“创建实用的PHP和MySQL项目”是我们最喜欢的一篇,主要介绍如何解决现实项目中可能遇到的实际问题,例如管理和调试大型项目。本章提供了一些能够说明PHP和MySQL强大功能的示例项目。
  我们希望得到您的反馈
  作为本书的读者,您是我们最重要的批评者和评价者。我们非常重视您的意见,并且希望知道我们的优点、哪些地方可以改进、您希望看到哪些领域的图书以及任何您愿意给我们的其他建议。
  您可以通过电子邮件或直接给我写信与我联系,让我知道你对本书的评价以及我们可以从哪些方面进行改善。
  请注意,我无法为您解答与本书相关的技术问题,而且由于我收到的信件或电子邮件的数量太大,因此我可能无法一一回答。
  当您给出意见时,请确认给出了本书的标题和作者,以及您的姓名和电话或电子邮件地址。我们将谨慎地考虑您的建议并与编写本书的作者和编辑们进行沟通。
  电子邮件:feedback@developers-library.info
  邮寄地址:Mark Taber
  Associate Publisher
  Pearson Education, Inc .
  800 East 96th Street
  Indianapolis, IN 46240 USA

读者服务

  访问我们的Web站点,并且在informit.com/register进行注册,将获得本书的任何更新、下载以及勘误信息。

作者简介

Laura Thomson,Mozilla公司的高级软件工程师。之前,她是OmniTI公司和Tangled Web Design公司的合伙人。此外,Laura曾经在RMIT大学和波士顿顾问集团工作过。她获得了应用科学(计算机科学)的学士学位和工程学(计算机系统 工程)学士学位。在她的空闲时间,她非常喜欢骑马,讨论免费软件和开源软件以及睡觉。
Luke Welling,OmniTI公司的一位Web架构师,他经常在一些国际会议(例如,OSCON,ZendCon,MySQLUC,HPCon,OSDC 以及LinuxTag)中就开源和Web开发的话题发表演讲。在加入OmniTI公司之前,他曾作为数据库提供商的Web分析师为Hitwise.com 公司工作。此外,他还是Tangled Web Design公司的独立顾问。他还在澳大利亚墨尔本的RMIT大学教授计算机科学课程。他获得了应用科学(计算机科学)的学士学位。在他的空闲时间,他希 望治好他的失眠症。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16502878/viewspace-697800/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-23

  • 博文量
    209
  • 访问量
    756404