Home > php教程 > php手册 > php实现的简单压缩英文字符串的代码

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

WBOY
Release: 2016-06-13 12:28:33
Original
876 people have browsed it

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; 
}

source:php.cn
Statement of this Website
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
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template