php实现的简单压缩英文字符串的代码
php实现的简单压缩英文字符串的代码
发布时间:2016-12-29 来源:查字典编辑
摘要:PHP,适应于上帖简单加密后的密文复制代码代码如下:AWK,通用格式复制代码代码如下:#!/bin/awkfunctioncompress(...

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_out""l

str_out=str_out""s;

}

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_out""substr(str,i,1);

}

returnstr_out;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类