用于动态内容和数据库交互的最优秀的语言:PHP

Joe Brockmeier 简要介绍了 PHP 脚本语言,讨论了 PHP 的起源、性能和适用的平台。一个简单的 PHP 脚本示例则着重说明了其基本语法和用法。

  如果您从事基于 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">    <strong>How to say "Hello, World!"</strong>                    <br>    Simple, huh?</body>      

  很简单,不是吗?这仅仅是一个 "echo" 语句,就这样。当然,仅仅这样是没有多大用处的。但是它确实告诉我们关于语言的一些东西。(顺便说一下,如果检查 HTML 输出,就会注意到 PHP 的代码并没有出现在从服务器送到您 Web 浏览器的文件中。所有出现在 Web 页面中的 PHP 都会被处理并从页面中剥离;从 WEB 服务器返回给客户机的仅仅是纯 HTML 输出。)

  在 Web 页面上打印日期和时间
  现在我们做一些稍微实用的事情。这个示例将在 Web 页面上打印日期和时间。

<body bgcolor="white">    <strong>An 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 的参考资料以了解更多信息。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, php
, 脚本
, 页面
, 内容
, 一个
php与web页面交互
,以便于您获取更多的相关知识。

时间: 2024-11-08 20:17:24

用于动态内容和数据库交互的最优秀的语言:PHP的相关文章

动态内容国际化,数据库设计

一个系统同时可以支持多种文字,简单说,同一个网站,既有中文版,英文版,法文版...... 那么这里就存在一个语言选择的问题,软件本身的语言选择就是我们耳熟能详的"国际化",根据用户的区域,或者设置选择对应的语言.但是软件中有很多内容是靠用户维护进去的,比如网站首页的"公司新闻",这样的"内容"要做到选择相应的语言显示就不是前面说的软件"国际化"可以做到的了.   根据各位兄弟的意见,我总结了一下,主要分两类解决方法: 1. 使

JSP 最佳实践:用 jsp:include 控制动态内容

include|js|动态|控制 本文是 Java"知情人士"Brett McLaughlin 继第一篇 JSP 最佳实践文章后的后续文章,在文中,作者向您演示了如何扩展 JSP 技术中用于动态内容的包含功能.了解静态 include 伪指令和动态 jsp:include 元素之间的差异,搞清楚如何混合搭配这二者以获取最优性能.在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页脚和导航组件之类的静态内容包含到 Web 页面中.和服

JSP最佳实践: 用jsp:include控制动态内容

简介:本文是 Java Brett McLaughlin 继第一篇 JSP 最佳实践文章后的后续文章,在文中,作者向 您演示了如何扩展 JSP 技术中用于动态内容的包含功能.了解静态 include 伪指令和动态 jsp:include 元素之间的差异,搞清楚如何混合搭配这二者以获取最优性能. 在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页 脚和导航组件之类的静态内容包含到 Web 页面中.和服务器端包含一样,JSP include 伪

营销数据库是隐藏在动态内容背后的大脑

用个性化的营销邮件吗?本文将告诉读者如何让企业的网站和社交网络更具个性化. 许多公司多年来一直在让自己的营销电子邮件显得更具个性,而且理由似乎也很充分.据Jupiter Research显示,与营销内容相关的个性化邮件,比普通广播发送的邮件给企业带来的收入多十八倍,并且,如果针对特定用户群而制定邮件发送内容,那么销售机会还会增加20%. 然而,个性化大多只停留在邮件的领域,当收件人点击邮件之时,邮件的生命周期就会在通用网页上戛然而止.出现这种情况,部分原因是由于技术的限制,但是随着越来越多的网络

求高手指导,引用母版页的子页里的Title标题怎么能动态连接到数据库里的内容呢??

问题描述 我做了一个母版页,然后子页引用了母版页,但是子页的<Title="UntitledPage">,我想实现的功能是把该子页的标题改成该页显示的引用了数据库中的文章标题,更进一步想能够把该子页的<meta>标签内容也能够存取数据库里,求高手指导. 解决方案 解决方案二:人工顶一顶,求高手指教解决方案三:既然是asp页面,那你这样试试页面内容<title><%=strTitle%></title>后台代码publicstr

可动态扩展的数据库模型设计

在通常的数据库设计中,我们定义了每个实体有多少个属性,每个属性的数据类型是什么,有多长,是否允许为空,有什么约束条件等,这些定义是完全静态的,系统创建时就全部定义好,不能动态修改.但是对于实体的属性变化很快,或者实体和属性由用户在系统中自行定义的情况下,那么就需要一个可以动态扩展的数据库模型,以保存各种动态产生的数据. 比如我们要做一个电子商务网站,需要建立一个商品表以保存各种要卖出的商品的属性.但是商品的属性各种各样,不同类别的商品在属性上千差万别,不可能建立一个静态的商品表来存储所有的属性.

给营销人员的启示:定制化动态内容

对于网络体验,消费者越来越精明,他们希望可以从网站中获得更多信息.消费者不希望一定要自己动手去挖掘想要的信息,他们希望这些信息就放在眼前的中心位置.他们希望有一个针对性强.个性化的http://www.aliyun.com/zixun/aggregation/12338.html">网站体验. 越来越多的公司正在开发"智能"网站--根据用户在网站的浏览记录,定制个性化的体验.这些网站并不是一个静态的.放之四海而皆准的网站:相反,这些网站非常清楚,每一位访客都有其独特的需

JSP 2.0下的动态内容缓存分析讲解

在Web应用中,内容缓存是最普通的优化技术之一,并且能够很容易地实现.例如,可以使用一个自定义地JSP标签--我们将之命名为<jc:cache>--由<jc:cache>和</jc:cache>将每一个需要被缓存的页面片段封装起来.任何自定义标签可以控制它所包含部分 (也即预先封装的页面片段)在何时执行,并且动态输出结果可以被捕获.<jc:cache>标签使得JSP容器(例如Tomcat)只生成内容一次,作为应用程序范围内的JSP变量,来存储每一个缓存片段.

Dreamweaver MX 动态建站数据库路径的使用方法

dreamweaver|动态|数据|数据库 一,不推荐使用Server.Mappath(相对文档路径地址的数据库文件) 虽然具有平台移植性,但对于不同层次,不同深度下的引用该数据库的文件,将不能完整地保证数据库路径的正确性. 举个例子: 1,数据库文件cnbruce.mdb,所在文件夹database(可http访问)2,DW自动生成的连接数据库文件conn.asp,所在文件夹Connections3,如果在DW中测试连接路径成功,则必须输入地址为Server.Mappath("../datab