当前位置:Linux教程 - Php - PHP,21世纪的霸主(四)

PHP,21世纪的霸主(四)

6.PHP的简要历史

PHP最初作为一种用Perl写成的简单小巧的CGI工具,被称为“个人主页工具(Personal Home Page Tools)”,后来改称为“个人主页构建工具箱(Personal Home Page Construction Kit)”。

也曾叫做“专业主页工具(Professional Home Pages)”,现在最新的名称是
“PHP超文本预处理器(PHP Hypertext Pre-Processor)”

另外还有一种工具,可以非常简单的把SQL查询语句嵌入Web页面当中。这种工具基本上可以看作是解析SQL查询语句,并在此基础上非常容易的创建表单和表格的另一种CGI工具。这种工具叫做FI(Form Interpreter,表单解释器)。

PHP/FI2.0彻底重写了这两个包,并合并成一个单独的程序。最终发展成一种嵌在HTML文件当中的简单的程序语言。PHP通过直接在HTML文件中放置简单的脚本
使得不再需要创建大量微小的Perl CGI程序。因为免去了多次调用Perl程序的负荷,所以大大提高了你的Web页面的总体性能。大大提高了你的Web页面的总体性能。 而且通过把构成Web页面的所有组件放在一个单独的HTML文件中,使得大型站点的管理变的更为容易。 由于包括了对各种数据库的支持,可以非常容易的开发基于数据库的Web页面。 许多人都认为,这种方式比创建分离的HTML和CGI文件更为简单。

现在,PHP/FI又被重新命名为PHP。

7.一个简单的例子

假设你有这样一个表单:
  <FORM ACTION="display.php" METHOD=POST>
  <INPUT TYPE="text" name="name">
  <INPUT TYPE="text" name="age">
  <INPUT TYPE="submit">
  </FORM>

你的display.html文件可以这样来显示表单所提交的内容:
  <? echo "HI $name, you are $age years old!<p>"; ?>

这是那么地容易! PHP自动为每一个表单输入域创建了变量。你可以直接在
ACTION指向的文件中使用这些变量。

一旦搞清楚了变量使用方法,那么下一步你便可以在页面中编写一些逻辑流程了。 例如,你想根据不同的用户输入来显示不同的消息,就可以使用if/else语句。 把上面的例子改一改,我们就可以根据用户输入的年龄做不同的显示了:

  <?
    if($age>50);
    echo "Hi $name, you are ancient!<p>";
    elseif($age>30);
    echo "Hi $name, you are very old!<p>";
    else;
    echo "Hi $name.";
    endif;
   ?>

PHP提供了一套非常强大的脚本语言,它能做的要比上面这个简单的例子要多的多。可参见PHP脚本语言部分,获取更多信息。

你也可以用PHP来配置页面的访问权限。这是通过一个内建的配置界面来实现的。比方说,你可以指定来自特定的域的用户才能访问你的页面。或者,你也可以创建一个规则,用密码保护特定的页面。 可参见访问控制部分,以获取详细内容。

PHP还能够从任何RFC-1867兼容的Web浏览器上载文件。 这一功能使得用户可以上传文本和二进制文件。通过PHP的访问控制和逻辑函数,你可以对谁可以上传文件以及文件上传后执行什么操作等实现完全的控制。可参见文件上传部分,以获取详细内容。

PHP有PostgreSQL数据库的支持包。它支持在HTML文件中嵌入SQL查询语句。


8. SOAPX4和PhpXMLP

SOAP是一种基于XML的协议,用于在两个进程间传送消息和进行RPC式的通讯。万维网联盟的XML协议(XP)工作小组正在开发SOAP标准,这一标准将被称为XP。

SOAPX4(Simple Object Access Protocol,简单对象访问协议)是PHP实现:
 http://dietrich.ganx4.com/soapx4.
 以及http://sourceforge.net/projects/phpxmlp

8.1 XML/XSLT发布引擎

 Krysalis是一套基于PHP技术的XML/XSLT发布引擎,其设计思想来自于Cocoon。
InterAKT公司开发Krysalis为得是实现下一代Web服务的功能,即信息,应用程序逻辑和表示层的完全分离。

Krysalis是一种开放源码的以XML/XSLT为核心的PHP开发平台,它利用了PHAkt的大部份代码,创建了Krysalis标记库(taglib)。

其主要功能有:
  ·动态的XML支持。
  ·动态生成PDF文档。
  ·用正规表达式描述站点地图。
  ·PXP页面缓存。
  ·多个转换管道。
  ·针对不同数据的多个连接类型(ADODB)。

请访问Krysalis的站点获取更多信息http://www.interakt.ro/products/krysalis


9.PHP类库

PHP是一个面向对象的脚本语言。因此PHP代码是“类,类,类,还是类”。在你编写PHP代码时,你必需编写可重用的类,这些类也可以使用现有的类。 网上有着大量编写好的类,拿来就可以使用。这其中有用来访问数据库的类,生成XML文档和HTML表单的类,还有用来创建表格和其它HTML对象的类。 如果你编写了什么通用的类,那么请你把它放到网上去。 到2005年,网上将会有超过1亿个可重用的PHP类。PHP类的优势在于它们提供了数据隐藏、继承、封装、可靠性、可重用性以及多态性等功能和特性。下面给出了最重要的PHP站点:

9.1 PHP类与PHP扩展和应用程序库

可访问下列Web站点获取大量立马就可以用的PHP类库

·PHP classes: http://phpclasses.upperdesign.com.

·PEAR(PHP扩展和应用程序库)是一个PHP扩展程序的代码库,与Perl的CPAN相似:http://pear.php.net

·ADODB (Active Data Objects Data Base,动态数据对象数据库) http://php.weblogs.com/ADODB : PHP的数据库访问函数并不统一。每个数据库扩展都使用不同并且不兼容的API函数。这就需要创建一个数据库类来隐藏不同数据库间的差异(即对不同数据库间的差异进行封装)。 从而,我们可以很容易的实现数据库的切换。ADODB目前可以支持MySQL、PostgreSQL、Interbase、 Oracle、 MS SQL 7、 Foxpro、 Access、 ADO、 Sybase和一般的ODBC。 可参考ADODB的手册。PhpLens就是基于ADODB的。

·Metabase (数据库独立访问和管理)
http://phpclasses.upperdesign.com/browse.html/package/20


·PHP Hot scripts: http://www.hotscripts.com/PHP

·非常受欢迎的PHP资源站点:http://php.resourceindex.com

·PHP项目站点:http://php.net/projects.php

·PHP Lib Netuse: http://phplib.netuse.de

·PHP小工具: http://www.northern.ca/projects/phpwidgets

·PHP4通用框架: http://sourceforge.net/projects/gpfr
 
·Source Forge的PHP库:http://phplib.sourceforge.net
 
·Source Forge的PHP程序片段: http://sourceforge.net/snippet

·E-gineer的PHP库 http://e-gineer.com/articles/php-hacker

·PHP常见问题解答: http://php.faqts.com

·PHP库 http://px.sklar.com

·PHP工厂: http://alfalinux.sourceforge.net/phpfact.php3

·PHP Builder:http://phpbuilder.com/snippet

·PHP developer: http://www.phpdeveloper.org 

·PHP新手: http://www.newbienetwork.net

· PHP walrus:http://www.evilwalrus.com

 

9.2 其它PHP工具

其它的PHP工具有:

·用户登录样本: http://www.devshed.com/Server_Side/PHP/Commerce1

·phpPDFtable是一个PHP类,方便PDF报表的创建。需安装PHP4.x(PHP3.x应该也可以)和pdflib:   http://sourceforge.net/projects/phppdftable

·数据管理员提供了一个基于PHP的数据管理界面。它并不仅限于一个或两个数据库。并且封装了原来的PHP数据库访问函数:http://sourceforge.net/projects/dadmin

· PSlib是一个用来生成PostScript文件的类库。提供了一个生成PostScript文件的简单方法。 只需在你的PHP脚本中调用PSlib函数就可以非常容易的生成PS文件:http://sourceforge.net/projects/pslib

· 可紧密合作的一组完整的PHP脚本,可创建高度自定义的,动态的和面向模块的web站点:http://sourceforge.net/projects/twebs
 
·phpOpenTracker是一个站点访问追踪的全面解决方案。所收集的数据存储在SQL数据库中。可以进行复杂但是简单的分析工作。包含了一套用于分析和生成报表(HTML和PDF)的功能强大的API:http://www.phpopentracker.de

·PHPShopCart 是一个用PHP的编写的网上购物车程序,使用MySQL数据库。此程序是为 “Linux下的数据库指南”这本书编写的”(Syngress Media): http://sourceforge.net/projects/phpshopcart


10 PHPGem 包

PHPGem本身也是PHP脚本程序,可加速生成操作数据表的PHP脚本。可工作于不同的SQL数据库,如PostgreSQL、MySQL、mSQL、ODBC以及Adabas。你只要输入数据字段的描述信息和参数(如字段名称、是/否搜索字段等),PHPGem就会为你输出另一个PHP脚本,该脚本可以对这个数据表进行各种操作(浏览/添加/编辑/删除/复制/搜索)。PHPGem支持多层嵌套的数据表。PHPGem允许你为每一个用户指定对每一个数据表和字段访问的级别。PHPGem还支持图象信息。                                                              (未完待续)