php实现的简单压缩英文字符串的代码

2018-09-20 23:48

阅读:404

  PHP,适应于上帖简单加密后的密文

复制代码 代码如下:
<?php
//replacement来自上个版本的加密替换

functioncompress_func($match){returnstrlen($match[0]).$match[0]{0};}

functionuncompress_func($match){returnstr_repeat($match[2],$match[1]);}

functioncompress($str){
$i=0;
$pattern=array();
while(isset($replacement{$i}))array_push($pattern,/.$replacement{$i++}.{2,}/);
returnpreg_replace_callback($pattern,compress_func,$str);
}

functionuncompress($str){
returnpreg_replace_callback(/(d+)(w)/,uncompress_func,$str);
}
?>

AWK,通用格式

复制代码 代码如下:
#!/bin/awk
functioncompress(str,_ARGVEND_,str_out,str_len,i,s,l){
str_out=;
str_len=length(str);
s=;
l=1;
for(i=1;i<=str_len;i++){
if(substr(str,i,1)==s)l++;
else{
if(s!=){
if(l>1)str_out=str_outl
str_out=str_outs;
}
s=substr(str,i,1);
l=1;
}
}
returnstr_out;
}
functionuncompress(str,_ARGVEND_,str_out,str_len,i,c){
str_out=;
str_len=length(str);
for(i=1;i<=str_len;i++){
c=0;
while(substr(str,i,1)~/[0-9]/){
c=c*10+substr(str,i,1);
i++;
}
if(c<1)c=1;
while(c--)str_out=str_outsubstr(str,i,1);
}
returnstr_out;
}


评论


亲,登录后才可以留言!