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/sni