设为首页  加入收藏 
网上投稿 网站地图
您现在的位置: 天添资源网 >> 电脑网络 >> 网络编程 >> CGI专区 >> 电脑正文

Perl语言的文字处理模式之三(4)

作者:佚名    电脑来源:中国站长站    点击数:    更新时间:2008-1-6
范例三:
  $string="ww22cgi44";
  $string=~s/(d+)/$1*2/e;
  (d+)代表要找寻$string中一个或是多个数值的字符串,再将找到的字符串设成
$1。加上参数e是代表要把$l*2当作是一个运算式,所以$string="www44cgi44";
  $string="www22cgi44";
  $string=~s/(d+)/$1*2/eg;
  加上参数e,所以会把$1*2当作是一个运算式来看, 加上参数g就会把全部符合数 值
的字符串经过运算式运算之后再把它取代,所以$string="www44cgi88";

范例四:
  假设原本的字符串是$value="三八!",经CGI数据编码之后,这个字符串就会变成
$value="%A4T%A4K%21"。以下是一个解码的示范程序:
  $value="%A4T%A4K%2l";
  $value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($l))/eg;

  在传送CGI数据的时候会把数据编码,其中会将特殊字符或是中文字符编码成以% 开头的连续两个十六进制数的字符串,所以要用s这个函数来找寻这个以%开头的 字符串。为了要把找到的字符串再做解码的处理, 所以要在%这个符号之后加上 ()这个符号, 表示会把找到的字符串记忆起来并指定给$1这个变量,而且要在() 中加上代表是连续两个十六进制数值的文字处理模式(Regular Expression),也 就是[a-fA-F0-9][a-fA-F0-9]。再用hex这个函数($1是代表符合的字符串)把十 六进制数值转成十进制的码,之后再用pack这个函数(以C为参数,是代表 unsigned char value的意思)把这个十进制码还原成原来的字符串。最后就会 把这个字符串解码成$value="三八!"。值得一提的是也可以把这个解码的程序 写成:

  $value=~s/%(..)/pack("C",hex($l))/eg;

电脑录入:不落尘埃    责任编辑:不落尘埃 
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  • 上一个电脑:

  • 下一个电脑: 没有了
  •  
    ■■相 关 文 章: 网站版权与免责声明:
    XMLHTTP资料
    在 XSL/XSLT 中实现随机排序
    用XML和XSL来生成动态页面
    利用XMLSerializer将对象串行化到…
    XML入门精解之结构与语法
    实例讲解:开发SWING的XML框架
    使XML本地化和关系化
    1、信息来源网络,感谢原创者和原录入者。本站转载其文并不代表赞同其观点或证实其内容。网站所有信息仅供参考,不构成任何之建议、推荐或指引,不能仅凭此信息购药、用药、诊断疾病或开处方,而应以其使用说明书为准,并谨遵医嘱。
    2、网站中转载的资料及图片,其版权属原作者或页面内声明的版权人拥有。如果文章的作者或编辑认为不宜上网供大家浏览,或不应无偿使用,请及时用电子邮件或电话通知我们,以便迅速采取适当措施,避免双方造成不必要的经济损失。
     
    关于我们 | 联系我们 | 客户服务 | 申请链接 | 合作联盟 | 诚征代理 | 诚聘英才
      www.ttzyw.com
    备案序号:桂ICP备号