|
| 作者:佚名 电脑来源:中国站长站 点击数: 更新时间: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、网站中转载的资料及图片,其版权属原作者或页面内声明的版权人拥有。如果文章的作者或编辑认为不宜上网供大家浏览,或不应无偿使用,请及时用电子邮件或电话通知我们,以便迅速采取适当措施,避免双方造成不必要的经济损失。 |
|
||||||||||