Home  >  Article  >  Backend Development  >  php实现的简单压缩英文字符串的代码_php实例

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

WBOY
WBOYOriginal
2016-05-17 09:37:24857browse

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         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         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; 
}
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn