动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   Cgi/Perl → 阅读文章

 cgilib例

作者来源: 
阅读 数 388 人次 , 2006-3-29 4:02:00 


一个简单的读取并处理表格请求数据的cgilib.pl例子:

#!/usr/bin/perl

sub readgetdata{
# 指定局部变量querystring用以保存和传递函数的参数
local(*querystring) = @_ if @_;
# 读取环境变量query_string的值赋给变量$querystring
$querystring = $env{"query_string"};
return 1;
}

sub readpostdata{
local(*querystring)=@_ if @_;
local($contentlength);
# 读取环境变量content_length的值
$contentlength = $env{"content_length"};
# 检查是否有数据
if($contentlength){
# 从设备stdin读取contentlength长度的字符赋给$querystring
read(stdin,$querystring,$contentlength);
}
return 1;
}

sub readdata{
local(*querystring) = @_ if @_;
# 读取环境变量request_method
$requesttype=$env{"request_method"};

# 如果请求方式为get则使用函数readgetdata
# 否则如果请求方式为post则使用函数readpostdata
if($requesttype eq "get"){
&readgetdata(*querystring);
}
elsif($requesttype eq "post"){
&readpostdata(*querystring);
}
return 1;
}

sub decodedata{
local(*querystring)= @_;
# 把加号转换成空格
$querystring=~s/\+/ /g;
# 转换十六进制字符
$querystring=~s/%(..)/pack("c",hex($1))/ge;
return 1;
}

sub parsedata{
local(*querystring,*formdata) = @_ if @_;
local($key,$value,$curstring,@tmparray);

# 以&为分隔符把字符串转换成键-值对
@tmparray = split(/&/,$querystring);

# 在数组@tmparray内循环
foreach $curstring(@tmparray){
# 以=为分隔符分开键-值对
($key,$value) = split(/=/,$curstring);
# 解码
&decodedata(*key);
&decodedata(*value);
# 把键和值加到字典中
$formdata{$key}=$value;
}
return 1;
}

1;
#end of file cgilib.pl

使用方法:

要使用此库需含下列语句:
#require "cgilib.pl";
表格数据处理:
%datadict=();
&readdata(*data);
&parsedata(*data,datadict);
字典数据处理:
while(($key,$value)=each(%datadict)){
print $key,"=",$value,"\n\n";
}

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:Perl程序设计中常用的函数
· 下一篇:CGI动态创建图象
· CGI教程(8)记录用户记录脚本之一
· Perl语言的文字处理模式之三(1)
· Perl操作Mysql数据库
· 实战 FastCGI_2. 安装 FastCGI之四
· Perl教学(13)Perl的面向对象编程之二


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077