用PHP增强UNIX/LINUX网站功能_PHP

WBOY
Release: 2016-06-01 12:34:59
Original
990 people have browsed it

在建立动态网站方面的强大功能,很快得到了广泛的应用。但由于众所周知的原因,ASP只能用于
微软自己的操作系统和服务器系统。目前基于UNIX的网络系统仍然占据大多数;而LINUX操
作系统由于其免费提供和开放源代码很受欢迎,其市场占有率迅速上升,据说已达到了17%左右;
APACHE服务器始终是网络站点的主流服务器软件。PHP的出现和逐渐完善,对基于
UNIX/LINUX系统的网络开发人员来说,无疑是个好消息:我们不用再只能羡慕ASP的
易用性而遗憾PERL/C的复杂性了!

              一 PHP特点概述
  PHP全称为Personal Home Page,于1995开始发行使用,到1998年成为一个成熟的软
件产品。目前最新的版本为4.0,而常用的版本为3.0。PHP是用C语言编写而成,可运行于
UNIX/LINUX和WIN9X/NT下。
  PHP,是一种跨平台的服务器端嵌入式脚本技术。PHP页面是一种文本文件,
是在普通HTML页面文件中嵌入PHP脚本语句,由服务器解释和翻译成普通的HTML文
件,然后传送给客户端浏览器,这一点和ASP一样。
  PHP大量借用了C、JAVA、和PERL语言的语法,并加入了各种PHP自
己的特征,使WEB开发者能够写出快速的动态页面。
  PHP脚本语句段以“”为开始,以“?>”为结束。“”和“?>”之间的脚本
语句由服务器软件调用PHP脚本解释引擎解释后替换为普通的HTML脚本。
  笔者认为,PHP最强大也最有代表性的特点在于它的数据库层,它内置了对很多
数据库的支持,而不再需要特殊扩充,使得编写基于数据库的网页变得非常简单。目前所支持的数据库
有Oracle、Adabas D、Sybase、FilePro、mSQL、Velocis、MySQL、Informix、Solid、dBase、
ODBC、Unix、dbm、PostgreSQL、MS SQL SERVER等。针对每个数据库都有一组函数用于数据库访问和操
作,如对dBase数据库有dbase_create、dbase_open、dbase_close、dbase_pack、dbase_add_record、
dbase_delete_record、dbase_get_record、dbase_numfields、dbase_numrecords等函数,对MySQL有
mysql_close、mysql_connect、mysql_create_db、mysql_data_seek、mysql_dbname、mysql_db_query
等函数。
  同时,PHP还提供了一组图像函数,可以动态生成gif格式的图像数据流并输出到
客户端。
  此外,PHP还提供了对Socket、EMail、PDF文件、HIS(Hyperwave Information
Server)、IMAP、LDAP(Lightweight Directory Access Protocol)、文件上载、NIS等功能的支持。


              二 搭建PHP应用系统平台
  PHP可以运行于UNIX/LINUX+APACHE服务器系统或WIN9X+PWS服务器系统或WINNT+IIS服务器系统。
  下面以PWIN98+PWS4.0为例,搭建一个PHP学习和开发环境。
(一)下载PHP3 For WIN9X/NT
  到http://www.php.net,选择downloads,然后选择Download the PHP source code and Windows
distribution,选择一个下载的站点,然后选择 3.0.11 Win32 binary 就可以了。如果觉得麻烦,就
用http://www.php.net/distributions/php-3.0.11-win32.zip吧。下载文件名为php-3.0.11-win32.zip,
大小为1.68M。
(二)安装PHP3 For WIN9X/NT
  安装PHP3 For WIN9X/NT很简单,只要将php-3.0.11-win32.zip解压缩到一个目录中即可。在下面的
讨论中,假设PHP3安装在C:\Program Files\PHP3目录中。
(三)配置PHP3 For WIN9X/NT
  配置PHP3 For WIN9X/NT,就是要修改系统设置,使PWS4.0能利用PHP3脚本解释引擎解释PHP页面。
  1、把C:\Program Files\PHP3目录里的文件php3-dist.ini拷到windows98安装目录(如C:\PWIN98)
下,并改名为php3.ini。
  2、编辑php3.ini文件
    编辑php3.ini文件,将“Paths and Directories”下的“Extension_dir”项改为“Extension_dir
=C:\Program Files\PHP3”;将“browscap”下的“browscap”项改为“browscap=C:\PWIN98\SYSTEMinetsrv\browscap.ini”(PWS4.0安装目录下文件);在注册表的HKEY_LOCAL_MACHINE\SystemCurrentControlSet\Services\W3Svc\Parameters\ScriptMap的主键下,增加一个字符串值,其名称为
“.php3”(PHP3文件的扩展名),其值为“C:\Program Files\PHP3\php.exe %s %s”。
  这样,在重新启动PWS服务器软件后,PWS4.0就可以利用PHP3脚本解释引擎解释PHP页面了。

              三 PHP脚本语法简介
  在PHP3文件中,PHP脚本语句段以“”为开始,以“?>”为结束,用“”和“?>”括起来的部分就
是PHP程序段。
  PHP语法和C、Perl的语法很相似,并主要来源于C语言,如控制流语句与C几乎完全一样、变量之间的
运算符与C的类似、函数定义和调用与C的类似等。
  PHP的变量名前面必须有一个$号,如$Var1、$Var2。PHP的变量作用域规定也类似于C,即缺省认为主函
数中的变量是全局变量,而函数中的变量都是局部变量。
  在PHP中,echo和printf函数用来向HTML页面中输出HTML内容,其中echo输出无格式字符串,printf输
出格式化的字符串。如echo("
这个一个PHP页面


")和printf("%s,%d",str1,int1)。
  如果熟悉C语言语法,学习PHP脚本语法应该不会太难。

              四 建立自己的简单PHP页面
  所谓的PHP页面就是在普通的HTML页面文件中插入一些特殊的脚本语言并以扩展名PHP保
存后的页面文件,所以可以很容易地建立一个自己的简单的PHP页面。
  下面是一个简单的PHP页面文件( test01.php3),应该不难理解。



一个简单的PHP3页面



        echo("PHP脚本解释引擎已经开始为您工作了!
"); ?>

下面应出现4行语句,字体大小从4到7


for($i = 4;$i

>这行语句的字体大小为
printf("%d",$i);} ?>




  其中,语句 printf("%d",$i); ?> 是将变量 i 的值输出到HTML文件中。
  由上可见,可以先制作一个普通的HTML页面文件,然后在需要的地方插入PHP脚本语言即可.
关键是熟练应用PHP脚本语句.
  该页面虽然简单,却可以帮助熟悉和理解PHP语法.可以用浏览器查看运行效果,再用其查看源代
码的功能看一下源代码,可以看对PHP页面解释后的HTML文件.注意必须用http的方式访问PHP页面,
不能象HTML页面文件那样双击文件名以文件方式浏览.如在笔者的计算机上的访问方式为
http://wangfajun/test01.php3,因为PHP页面需要PWS等服务器软件进行解释。

              四 获取用户请求信息
  要制作动态站点页面,获取用户请求信息是必不可少的。PHP页面可以利用这些信息作为某些应用
(如商业订单信息)的依据,并对申请者的申请要求作出反馈。
  在ASP页面中,可以利用其内建对象Request获取访问者的申请信息。而在PHP页面中,可以以读取
数组的方式获取访问者的申请信息如表单信息(Form Field)、查询信息(QueryString)等。请求页
面中以POST方式发送的请求信息可以以$HTTP_POST_VARS["ItemName"]的方式获取,以GET方式发送的请
求信息可以以$HTTP_GET_VARS["ItemName"]的方式获取,Cookies信息可以以$HTTP_COOKIE_VARS[
"ItemName"]的方式获取。一般表单信息是以POST方式发送的,可以以$HTTP_POST_VARS["ItemName"]的
方式获取;查询信息是以GET方式发送的,可以以$HTTP_GET_VARS["ItemName"]的方式获取。
(一)由一个HTML或PHP3页面请求另一个PHP3页面处理
  在下面的这个例子中,读者会员资格注册申请页面要求申请者填写其姓名全称、身份证号码、
EMail地址。在收到读者申请后通知其注册成功。
  先做一个读者会员资格注册申请页面,可以是HTML页面或PHP页面.这应该不成问题.



读者会员资格注册申请


读者会员资格注册申请




姓名全称:


身份证号码:


电子邮箱:






  在申请页面中,所有的申请数据均填写在Form元素中,并且在Form的Action中指定处理
申请的页面为test02.php3。当收到申请时,对应项目的数据可以由$HTTP_POST_VARS["项目名称"]
来获得,其中"项目名称"为Form元素的名称,如"姓名全称"对应"FullName" ,如"身份证号码"对
应"UniversalID" 。现在利用这些信息来制作一个注册成功的通知页面test02.php3。



读者会员资格注册申请成功


读者会员资格注册申请成功


亲爱的 printf("%s",$HTTP_POST_VARS["FullName"]) ?>读者:

我们已经收到你的申请,并接受你的申请.你已经成为我部正式读者会员.

你的读者号为CN printf("%s",$HTTP_POST_VARS["UniversalID"]) ?>。我们将通过你的电子信箱
printf("%s",$HTTP_POST_VARS["Email"]) ?>来正式通知你.此后我部举行读者沙龙活动的时间
和地点也将通过该信箱通知你.


  现在用浏览器打开申请页面apply.htm,填入对应数据后提交申请,查看反馈效果,再用浏览器
的查看源代码的功能看一下源代码,可以看对PHP页面解释后的HTML文件.

(二)由一个PHP3页面请求同一个PHP3页面处理
  下面的另一个例子中,login.php3 提供了一个用户登录页面,要求用户输入登录帐号和密码,
然后再通过Form的Action属性将表格发送给自己进行处理.在 login.php3 中,将根据帐号和密码
是否为空来判断是输入页面还是反馈页面,并给予不同的提示,若未输入帐号或密码则提示“用户
登录,请输入用户帐号和密码",否则显示用户帐号和密码。



用户登录


file://帐号或密码为空,提示用户登录输入用户帐号和密码
if(Empty($HTTP_POST_VARS["CustomerID" ] ) ¦¦
Empty($HTTP_POST_VARS["Password" ] ))
{
?>

用户登录,请输入用户帐号和密码





用户帐号:


用户密码:




}
else file://已输入用户帐号和密码,则显示用户帐号和密码
{
printf("

用户%s登录成功,密码为%s。

",$HTTP_POST_VARS[ "CustomerID" ],
      $HTTP_POST_VARS[ "Password" ]);
}
?>



(三)在PHP3页面中获取查询参数信息
  当用户以 xxxxx.php3?ParaName = ParaValue 的方式发出查询请求时,xxxxx.php3 可以
从$HTTP_GET_VARS[ "ParaName"] 中获取用户提交的查询参数ParaName的信息ParaValue,还可
以从count($HTTP_GET_VARS)得知用户请求参数的个数并进行相应的处理。
  当用户以 query.php3?CustomerID=7777 的方式发出查询请求时,query.php3 可以从
$HTTP_GET_VARS[ "CustomerID" ] 中取得查询参数 CustomerID的值为 7777,
count($HTTP_GET_VARS) 为 1.
  当用户以 query.php3?CustomerID=7777&Password=DogIsDog 的方式发出查询请求时
,query.php3 可以从$HTTP_GET_VARS[ "CustomerID" ] 中取得查询参数 CustomerID 的值为
7777,从$HTTP_GET_VARS[ "Password" ] 中取得查询参数 Password的值为 DogIsDog ,
count($HTTP_GET_VARS) 为 2。
  下面的例子(query.php3)用于获取用户指定的查询参数,并显示出来反馈给用户。当以
query.php3?CustomerID=1111&StartDate=1999.01.01&EndDate=1999.06.30的方式发出请求时,
得到的结果为:
您指定了3个查询参数如下:
第1个参数CustomerID的值为:1111
第2个参数StartDate的值为:1999.01.01
第3个参数EndDate的值为:1999.06.30



查询参数处理



    $QueryCount = count($HTTP_GET_VARS);//查询参数个数
    printf("

您指定了%d个查询参数如下:

",$QueryCount);//显示查询参数个数
    file://列举各个查询参数及其值
    for( $intIndex = 0 ;list( $key, $val ) = each( $HTTP_GET_VARS ); $intIndex++ )
      {
        printf("

第%d个参数%s的值为:%s

", $intIndex+1, $key, $val);
      }
?>



(四)、获取用户的Cookies信息
Cookies 可以服务器和客户端之间双向传递,它记录了特定用户的某些信息.在PHP
中可利用$HTTP_COOKIE_VARS["CookieItemName"]获取用户的Cookies信息。下面语句可用来显
示用户的所有Cookies信息:

    $QueryCount = count($HTTP_COOKIE_VARS);//Cookie数目
    printf("

您有%d条Cookies信息如下:

",$QueryCount);//显示Cookie数目
    file://列举各个Cookie及其值
    for( $intIndex = 0 ;list( $key, $val ) = each( $HTTP_COOKIE_VARS ); $intIndex++ )
      {
        printf("

第%d条Cookie(%s)的值为:%s

", $intIndex+1, $key, $val);
      }
?>

(五)、获取服务器环境信息
  在PHP中,服务器环境信息以一组全局变量的形式给出,以供PHP脚本程序访问。
  常用的服务器环境变量信息有:
$GATEWAY_INTERFA
CE:网关界面如CGI/1.1
$HTTP_ACCEPT:客户端可接受的MIME类型列表如*/*
$HTTP_ACCEPT_LANGUAGE:服务器采用的语言,"en"表示英文,"zh-cn"表示简体中文
$HTTP_HOST:HTTP服务器名称
$HTTP_USER_AGENT:发出请求的客户浏览器类型,根据用户请求信息和browscap.ini来识别,
         如Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
$LOCAL_ADDR:本机服务器名称
$PATH_TRANSLATED:脚本文件的文件全名(含实际路径),如
C:\Inetpub\wwwroot\php3\query.php3
$REMOTE_ADDR:发出请求的客户端机器的IP地址
$REMOTE_HOST:发出请求的客户端机器的名称
$REQUEST_METHOD:发出请求的方法(Post/Get/Head)
$SCRIPT_NAME:被调用的脚本文件的路径及文件名称如/php3/query.php3
$SERVER_NAME:服务器的名称或IP地址
$SERVER_PORT:HTTP服务端口号,一般为 80.
$HTTP_REFERER:客户端发出CGI程序请求的页面的URL
$SERVER_PROTOCOL:服务器软件所用的协议如HTTP/1.1
$SERVER_SOFTWARE:服务器软件的名称及版本如Microsoft-IIS/4.0

                 五 向用户发送信息
  可以利用PHP提供的函数很灵活地控制向客户端发送的信息的内容和方式.例如可以动态设置反馈
信息、设置客户的Cookie、页面重新定位等等。
(一)、利用 echo、printf等PHP函数控制发送的信息内容
函数 echo、printf 可以向发往客户端浏览器的HTML文件中直接输出内容。
在下面的例子中,selecolr.php3 要求用户输入一个颜色名称,用户确认后将用户申请发
往同一个页面selecolr.php3,然后用用户指定的颜色将颜色名称显示出来.



服务器端脚本和客户端脚本混合编程


鼠标移到各记录上的【项目名称】上时,请注意状态条内容的变化




for( $intIndex = 1; $intIndex
 
       
       
 
 
}?>
项目名称 状态条应出现的内容

                       
鼠标现在正指向项目 echo($intIndex) ?>



    七 增加注释
  在编程时添加注释是一个好的习惯.PHP 允许在页面代码中添加注释,具体的注释方法与C
语言注释语法相同,如可用双斜杠“//”作为注释符。

  八 利用 Include 来实现功能模块化
  可以将常用的功能函数存于一个PHP文件,在其它PHP页中要用其中的功能时,将包含函数的
PHP文件包含在调用函数的PHP文件中.这时可使用 Include 函数。具体语法为:
include($FileName);
使用时应该注意:
  1、应避免自包含,即 File1 包含 File1;在多个文件中有包含语句时,应避免间接自包含
即循环包含,如File1包含File2,File2包含File3,File3包含File1.
  2、被包含的脚本语言的类型必须是PHP语言类型或<script></script>脚本语句段。

  以上是学习和使用PHP创建动态、交互式站点的一些入门知识,有了这些基础知识,就可以发挥
以前自己积累的编程经验,自己动手学习和探索用PHP创建基于UNIX/LINUX网站系统的动态、交互式
站点的高级网
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!