|
|
|
[
来路:21kn.com 时间:2007-7-8 16:28:57
点击: ] |
|
|
|
|
|
一个简单的读取并处理表格请求数据的cgilib.pl例子:
#!/usr/bin/perl sub readGetData{ # 指定局部变量queryString用以保存和传递函数的参数 local(*queryString) = @_ if @_; # 读取环境变量QUERY_STRING的值赋给变量 = { "QUERY_STRING"}; return 1; }
sub readPostData{ local(*queryString)=@_ if @_; local(); # 读取环境变量CONTENT_LENGTH的值 = { "CONTENT_LENGTH"}; # 检查是否有数据 if(){ # 从设备STDIN读取contentLength长度的字符赋给 read(STDIN,,); } return 1; }
sub readData{ local(*queryString) = @_ if @_; # 读取环境变量REQUEST_METHOD ={ "REQUEST_METHOD"};
# 如果请求方式为GET则使用函数readGetData # 否则如果请求方式为POST则使用函数readPostData if( eq "GET"){ &readGetData(*queryString); } elsif( eq "POST"){ &readPostData(*queryString); } return 1; }
sub DecodeData{ local(*queryString)= @_; # 把加号转换成空格 =~s/\+/ /g; # 转换十六进制字符 =~s/%(..)/pack("c",hex($1))/ge; return 1; }
sub parseData{ local(*queryString,*formData) = @_ if @_; local(,,,@tmpArray);
# 以&为分隔符把字符串转换成键-值对 @tmpArray = split(/&/,);
# 在数组@tmpArray内循环 foreach (@tmpArray){ # 以=为分隔符分开键-值对 (,) = split(/=/,); # 解码 &DecodeData(*key); &DecodeData(*value); # 把键和值加到字典中 { }=; } return 1; }
1; #end of file cgilib.pl
使用方法:
要使用此库需含下列语句: #require "cgilib.pl"; 表格数据处理: %dataDict=(); &readData(*data); &parseData(*data,dataDict); 字典数据处理: while((,)=each(%dataDict)){ print ,"=",,"\n\n"; }
|
|
|
::::站长友情提示:多花一分钟学点什么都好::::
|
|
|
|
|
|
|
|
|
|
|
|
=
= 免责声明 = = |
|
①
欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com |
|
|
|
|
|
|