如果您从事基于 Web 的开发工作,那么可能已经听说过 PHP。您也许不太确切地知道 PHP 是什么、如何工作或者为什么如此热门,但现在该是进一步了解 PHP 的时候了。因此本文简要介绍了关于 PHP 基础的基本概念。
一点背景知识
PHP 是作为一个小开放源码,随着越来越多的人意识到它的实用性从而逐渐发展起来。Rasmus Lerdorf 在 1994 年发布了 PHP 的第一个版本。从那时起它就飞速发展,并在原始发行版上经过无数的改进和完善现在已经发展到版本 4.0.3 。
PHP 是一种嵌入在 HTML 并由服务器解释的脚本语言。它可以用于管理动态内容、支持数据库、处理会话跟踪,甚至构建整个电子商务站点。它支持许多流行的数据库,包括 MySQL、PostgreSQL、Oracle、Sybase、Informix 和 Microsoft SQL Server。
动态与静态内容
动态内容为什么这么热门?假设您正在管理有 10 个产品的电子商务站点。只要产品不是经常变动或者预料到它不会有太大的变动,那么手工编写 10 个带有必要的信息、表单和诸如此类内容的静态产品页面是不困难的。但是,假设您在本月再要添加 10 个或更多产品,然后在下个月要更多,而且价格有时会变动或者想改变站点的观感。那么您就会陷入用手工重新编写数十个,也许上百个静态页面的困境中。
另一方面,假设您从创建 product.php 页面开始。它没有静态信息,而是编码成可以从产品数据库中提取信息并动态地构建一个页面。然后您就拥有了一个元数据页面,它可以根据存储在数据库中的信息提供一个、一百个、甚至十万个单独页面。现在网站管理员不再整天都简单重复更新静态页面的工作,因为在更新公司数据库中的信息同时就可以更新页面上的信息。这样就消除了令人头疼的时间延迟(在数据库中更改信息和在网站上显示信息之间的时间间隔)。
总体来说,PHP 非常适合 Web 上的工作。但它并不是唯一的方法;如 Perl、Java、JavaScript、ASP、Python、Tcl、CGI 以及其它许多方法都可以生成动态的内容。但是,PHP 的优点是:它是专为基于 Web 的问题而设计的以及它是开放源码。
如果您正在为文字处理或 3D 游戏寻找程序设计语言,那 PHP 可能不是您所需要的语言。如果您需要运行一个具有动态内容、数据库交互和电子贸易的网站,那么就请继续读下去,因为 PHP 在这方面确实是非常有用的。
PHP 适用的平台
大多数常规 PHP 的安装通常是与 Linux 或各种 UNIX 上的 Apache 一起运行的 PHP 模块。但是如果正在使用其它平台,不要担心。PHP 可以在 Windows NT 和 9x 以及其它许多 Web 服务器上运行。可以在主要介绍 Apache/Linux/PHP 组合的一些网站上找到更多有关 PHP 的文档,但它并不是支持 PHP 的唯一平台。
许可证和使用
购买具有全部功能的嵌入式 Web 脚本语言要花多少钱?一分钱不花?PHP 是一个开放源码项目,所以没有购买许可证的费用或限制使用的问题。您可以使用 PHP 来运行小的、非赢利性站点,或者运行十亿美元的电子商务网站,而且成本是一样的:零。不仅如此,如果想要或需要修改 PHP,可以修改它。
PHP 并没有得到 GPL 的许可,但它自己的许可证允许重新分发代码和/或二进制文件。
使用 PHP
好,现在您已经确信要真正地尝试一下 PHP 了吧。我们先看一些简单的例子,这样您对 PHP 就有个大概了解。记住决这不是深入了解 PHP 的途径,仅仅是个快速入门而已。
"Hello, World!"
为了对 PHP 有个了解,让我们来看一下几个非常简单的 PHP 脚本。既然 "Hello, World!" 是个常用的示例,那我们就编写一个友好的小 "Hello, World!" 脚本。
如早些时候所提到的,PHP 是嵌入在 HTML 中的。(可能您的文件几乎没有包含 HTML,但是通常这个文件是 PHP 与 HTML 的混合体。)这意味着在您正常的 HTML 中(或 XHTML,如果您处在比较前沿的位置),会有类似这样的 PHP 语句:
<body bgcolor="white"
<strongHow to say "Hello, World!"</strong
<?php echo "Hello, World!";?
<br
Simple, huh?
</body
很简单,不是吗?这仅仅是一个 "echo" 语句,就这样。当然,仅仅这样是没有多大用处的。但是它确实告诉我们关于语言的一些东西。(顺便说一下,如果检查 HTML 输出,就会注意到 PHP 的代码并没有出现在从服务器送到您 Web 浏览器的文件中。所有出现在 Web 页面中的 PHP 都会被处理并从页面中剥离;从 WEB 服务器返回给客户机的仅仅是纯 HTML 输出。)
在 Web 页面上打印日期和时间
现在我们做一些稍微实用的事情。这个示例将在 Web 页面上打印日期和时间。
<body bgcolor="white"
<strongAn Example of PHP in Action</strong
<?php echo "The Current Date and Time is:<br";
echo date("g:i A l, F j Y.");?
// g = the hour, in 12-hour format
// i = minutes
// A = print AM or PM, depending...
// l = print the day of the week
// F = print the month
// j = print the day of the month
// Y = print the year - all four digits
此代码生成以下输出:
The Current Date and Time is:
11:00 AM Friday, October 20 2000.
请注意,这里揉和了 PHP 和 HTML。假设您已经了解 HTML,所以这里仅解释 PHP 代码。在 PHP.net (请参阅参考资料)上可以找到完整的 PHP 参考。
PHP 代码是以标记 <?php 开始并以 ? 结束的。这就告诉服务器在 <?php 和 ? 之间的所有内容需要用 PHP 指令进行语法分析,如果发现它们,就需要执行它们。请注意,当处理和服务您的文件时,客户机会收到普通的 HTML 文件。浏览您站点的人看不到任何一个的 PHP 指令,除非您犯了错误,服务器把这些 PHP 代码分割开而没有先处理它们。
一般情况下会处理在 <?php 和 ? 之间的常规 HTML 标记。请注意上面这个简单的脚本中包含了 <br 这个分行标记。如果不能够很好地利用 HTML 格式,那么 PHP 就不会非常有用。
如果想和其它东西一起使用,或者您和我一样是一个健忘的人,您可能会想到要注释代码。// 字符表明是注释,服务器不会处理被 // 标记的内容,也不会象 HTML 中的注释一样,把内容传给客户机。如果在 <?php 和 ? 标记之间有标准的 <!-- comment -- ,那么当服务器对它进行语法分析时,有可能引起错误。显然,您可能不会象我对这个基本功能一样注释您的代码,但它确是一个很好的示例。
最后要注意的是,每个 PHP 函数都封闭在圆括号内,并以分号结束,这和 C 或 Perl 相似。由于一个简单的印刷错误而遗漏一个结束的圆括号或分号,造成一些语法错误是很常见的,所以要确保检查代码。在象 Vim 或 Emacs 这样的编辑器(可以突出显示语法)中编写 PHP 是有助于消除此类错误。它使您能立刻捕捉到错误。
date 函数仅是内置 PHP 函数之一。PHP 附带了许多功能可以用于数据库连接、创建 PDF、Shockwave、JPG、GIF、PNG 和其它图象文件、发送电子邮件、阅读和书写文件、语法分析 XML、会话处理、经由 HTTP 直接与浏览器对话,以及许多其它功能。
PHP 也允许用户定义自己的函数。这使 PHP 语言能够经由 Web 提供大量的解决方案。而不是从一开始就把所有的事情都编写好了。在您编写函数之前,确保已经查看诸如 Zend.com、PHP Wizard 当然还有 Freshmeat,来看是否已经有您正在尝试编写的函数(请参阅参考资料)。
对于提供标题、自动更新新闻网站、基于 Web 的电子邮件客户机、数据库管理和其它方面,已经有许多开放源码的 PHP 解决方案。再从头来做这些是毫无意义的。相反,应该从已经构建好的基础开始,并把它定制到您自己的解决方案中。如果您仅仅是初步了解和学习 PHP,在心中并没有具体的项目,那么这些项目对于使用 PHP 仍然是很好的示例和学习资料。
结束语
这篇 PHP 脚本语言的简要概述阐明了 PHP 功能和用法。在以后的文章中,我会讲述通过访问 MySQL 数据库来创建动态的 Web 产品页面。在那之前,请查看下面关于 PHP 的参考资料以了解更多信息。