首页 >后端开发 >php教程 >用PHP增强UNIX/LINUX网站功能_PHP

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

WBOY
WBOY原创
2016-06-01 12:34:591059浏览

在建立动态网站方面的强大功能,很快得到了广泛的应用。但由于众所周知的原因,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网站系统的动态、交互式
站点的高级网
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn