电子商务方案 全易网上商店 去看看>> 妙搜·生活信息搜索引擎·全国61城市公交查询好站二百五·个人门户

全易因特网软件-->为您提供专业CGI软件,按此进入联系合作…… 第一章 cgilib例  加入网站挣钱
 免费登录搜索引擎
请按 CTRL+D
添加到收藏夹
站点导航 CGI支持论坛 好易CGI工厂  用户列表  联系合作 资源库导航 <=返回 × 关闭

全易因特网软件


好易CGI工厂

 
全易网上商店
虚拟域名系统 [ok]
在线定单处理 [ok]
邮件列表管家 [ok]
域名注册系统 [ok]
全易数据库 [ok]
 
产品支持
订购产品
意见反馈
联系合作
友情链结
网络安全
CGI资源 免费资源
CGI支持论坛 精华
CGI资源站
SSI全攻略
给我写信
最新免费主机
PERL工具集
CGI安装指南

合作网站

好站二百五个人门户

妙搜·生活信息搜索
IP地址归属地查询
公交线路及换乘查询
手机号归属地查询
身份证信息查询检验
生日密码信息查询
 
 

Perl 5教程
by flamephoenix

[
目录 ]

第一部分 Perl语言
第一章 概述
第二章 简单变量
第三章 操作符
第四章 列表和数组变量
第五章 文件读写
第六章 模式匹配
第七章 控制结构
第八章 子程序
第九章 关联数组(哈希表)
第十章 格式化输出
第十一章 文件系统
第十二章 引用(指针)
第十三章 面向对象编程
第十四章 包和模块
附录一 函数集

第二部分 Perl的CGI应用
第一章 cgilib例
第二章 动态创建图像
第三章 计数器的编写方法
第四章 Web Server设置

第五章、...
 

第一章 cgilib例(未定稿)

by flamephoenix

一个简单的读取并处理表格请求数据的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";
}

下一章 目录

[ 返回页首 ] 更新于:2005/07/09
联系我们 通过QQ在线与客服人员交流
1998-2005 Copyright© 全易因特网软件 版权所有
好站二百五·网站指南 合作网站
京ICP备05009694号