当前位置: 首页 > 图文教程 > 网络编程 > PHP > Web技术进阶—PHP构建网站

PHP
php 远程图片保存到本地的函数类
php 破解防盗链图片函数
快速开发一个PHP扩展图文教程
PHP6 mysql连接方式说明
php 进度条实现代码
php discuz 主题表和回帖表的设计
php 无限级缓存的类的扩展
php adodb操作mysql数据库
php FPDF类库应用实现代码
sourcesafe管理phpproj文件的补充说明(downmoon)
AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
php一句话cmdshell新型 (非一句话木马)
php 木马的分析(加密破解)
PHP 数组入门教程小结
php 方便水印和缩略图的图形类
PHP加速 eAccelerator配置和使用指南
PHP 组件化编程技巧
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
两个强悍的php 图像处理类1
PHP 数据库 常见问题小结

Web技术进阶—PHP构建网站


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 34 ::
收藏到网摘: n/a

当建设一个网站的时候,绝大多数时候不仅需要它能够提供静态网页访问能力,还希望它能和浏览器用户交互、访问后台数据库提供实时更新的信息等等,一句话,要提供动态网页服务能力。这时,你是选择传统方式的CGI呢,还是选择PHP、ASP等服务器端脚本呢? 

  ■从CGI到服务器端脚本 

  创建动态网页的标准方式是CGI,这种方式允许Web服务器运行一个CGI程序来回应浏览器的请求。除了要遵从简单的CGI标准之外,CGI程序的开发与普通程序开发没有什么区别。然而,随着要生成的动态网页的数量和复杂程度的增加,这种方式就遇到了困难。 

  CGI程序包括两个主要部分,一个是程序代码,另一个是要输出的HTML文档内容,可以称作HTML代码。最早的Web开发者既是程序员,又是网页设计者,但是那时的页面都比较简单,开发者最关心的是程序代码的问题,页面代码基本上不需要太多的调整。而随着包括DHTML、javascript在内的技术发展,使得页面可以设计得非常复杂,而由于出现了各种CGI的程序库,程序代码则变得简单多了。这样每进行一次页面代码的调整,CGI程序就需要改动,以至于最后在CGI程序调试中,调试HTML代码的工作量超过了调试程序代码的工作量。这说明在Web开发中,HTML代码的重要性已经十分明显,使得传统的以程序代码为中心的CGI程序不再是最适合的动态网页处理方式了。 

  这样,相当多的程序员对于这种调整HTML代码的工作感到厌倦,尤其随着Internet的商业化,编写CGI程序和进行HTML页面设计已经成为了两种不同的职业。为了解决这个问题,程序员首先使用了模板文件的方法将程序代码和HTML代码分开,CGI程序读取模板文件来获得HTML代码,从而使得在对页面进行较小调整的时候,不需要改动CGI程序。 

  基本上每个程序员在自己的CGI程序中使用自定义的模板,然而,如果有一种通用的HTML模板,使用通用的程序进行预处理,这样不就大大减少了程序设计的工作量吗?最简单的模板可以通过替换模板中预定义的变量来完成解释工作,由于这种程序简单而有效,因此就被集成在Web服务器中,以提供比CGI程序更高的效率,这就是最早的服务器端脚本。 

  这些早期的服务器端脚本,例如出现在ncsa httpd的SSI,只包括变量的概念,但没有控制语句的概念。后来,不同的程序开发者重新开发了支持控制语句,甚至支持子程序的脚本解释处理程序,使得这些程序不仅能为特定的动态网页服务,而且能够进行编程,因而能够完成CGI程序能完成的所有工作,成为了一种新的编程语言。同样是由于性能的缘故,这些程序被合并入Web服务器本身,这就它成为Web开发的一种新形式。 

  ■来自开放资源的PHP 

  当前,服务器端脚本已经是开发动态网页的常用方式,虽然CGI仍然具备灵活的优势,但在一般情况下,使用服务器端脚本更容易和方便。然而,与CGI不同的是,服务器端脚本没有一个统一的标准,不同的服务器端脚本使用各自的语法。当前比较常用的有:Active Server Pages(ASP),ColdFusion,Java Servlets,Personal Home Page(PHP)等。这些技术中,既包括有大公司支持的软件,如ASP,也包括通过Internet进行合作开发的开放源代码软件,如PHP。 

  PHP正是这样一种服务器端脚本语言,它最开始是由Rasums Lerdorf编写的,只是一个简单的用Perl语言编写的CGI程序,用于记录访问他自己的网页的访问者。以后它又被用C语言重新写过,范围扩大到访问数据库。在这期间,有许多人向Rasums Lerdorf要此程序的拷贝,以便自己使用,Rasums Lerdorf为此写了一些介绍此程序的文档,并发布了PHP v1.0。以后,越来越多的人使用PHP,并强烈要求增加一些其他的特性,如循环语句和数组变量等,这时其他的一些程序员也开始参与PHP源码的编写,对PHP进行了重新编写,PHP v3.0就出现了。当前,使用PHP的网站已经超过80万,并且还在不断地增加。 

  除了向浏览器发送动态网页之外,PHP还能发送不同HTTP头标识,使其能提供网页重定位、与Web服务器的安全认证结合的能力、以及设置Cookie。PHP能提供与多种数据库直接互联的能力,包括MySQL、Sybase、Informix、Oracle、MsSQL等,也能支持ODBC。并通过额外的库能够支持会话管理和XML处理(这些库都是基本的库,因此也是PHP用户的基本配置)。从这里我们可以看出,PHP已经不再是简单的服务器端脚本了,按照《PHP3浏览器应用编程》的作者David Medinets的话,PHP是一种应用服务器。因为它不仅仅包括一个完整的编程语言,而且还包括完整的访问数据库的能力、支持Internet协议(如电子邮件和HTTP)的能力,这一整套技术使得PHP能与ASP、ColdFusion、WebSphere互较短长。 

  要运行PHP,通常使用Linux或FreeBSD作为操作系统,使用Apache作为Web服务器。当然使用其他操作系统也同样可行,这是因为PHP是一种跨平台的软件,这当然得益于它是开放源代码的软件。但是,如果不使用Apache服务