php怎么压缩文字,php实现的简单压缩英文字符串的代码
PHP,適應于上帖簡單加密后的密文
//replacement來自上個版本的加密替換
function?compress_func($match)?{return?strlen($match[0]).$match[0]{0};}
function?uncompress_func($match)?{return?str_repeat($match[2],?$match[1]);}
function?compress($str)?{
$i?=?0;
$pattern?=?array();
while(isset($replacement{$i}))?array_push($pattern,?"/".$replacement{$i++}."{2,}/");
return?preg_replace_callback($pattern,?"compress_func",?$str);
}
function?uncompress($str)?{
return?preg_replace_callback("/(d+)(w)/",?"uncompress_func",?$str);
}
?>
AWK,通用格式
#!/bin/awk
function?compress(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;
}
}
return?str_out;
}
function?uncompress(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?
while(c--)?str_out?=?str_out""substr(str,?i,?1);
}
return?str_out;
}
總結
以上是生活随笔為你收集整理的php怎么压缩文字,php实现的简单压缩英文字符串的代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中药敷肚子减肥的危害是什么
- 下一篇: 如何在MATLAB中把变量填到Word中