您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

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

2024/4/28 22:22:03发布4次查看
在建立动态网站方面的强大功能,很快得到了广泛的应用。但由于众所周知的原因,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语言类型或脚本语句段。
以上是学习和使用php创建动态、交互式站点的一些入门知识,有了这些基础知识,就可以发挥
以前自己积累的编程经验,自己动手学习和探索用php创建基于unix/linux网站系统的动态、交互式
站点的高级网
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录