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 < 1) c = 1; 
        while(c--) str_out = str_out""substr(str, i, 1); 
    } 
    return str_out; 
}

(0)

相关推荐

  • php压缩和解压缩字符串的方法

    本文实例讲述了php压缩和解压缩字符串的方法.分享给大家供大家参考.具体如下: 下面php代码通过gzcompress和gzuncompress压缩和解压缩字符串,可以设定压缩级别 $str = 'Hello I am a very very very very long string'; $compressed = gzcompress($str, 9);//压缩级别为9 $uncompressed = gzuncompress($compressed); echo $str, "\n&quo

  • php截取字符串函数分享

    经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数.答案当然是有的.PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了,这里再给大家分享一个更加优秀的截取字符串的函数. 复制代码 代码如下: /**      * 方法库-截取字符串-[该函数作者未知]      * @param string  $string 字符串       * @param int     $length 字符长度      * @pa

  • php查询相似度最高的字符串的方法

    本文实例讲述了php查询相似度最高的字符串的方法.分享给大家供大家参考.具体如下: 根据传入的字符串和数组,返回数组中相似度最高的字符串 1. PHP代码如下: function closest_word($input, $words) { $shortest = -1; foreach ($words as $word) { $lev = levenshtein($input, $word); if ($lev == 0) { $closest = $word; $shortest = 0;

  • php 字符串压缩方法比较示例

    php 提供的字符串压缩方法有 1.gzcompress - Compress a string This function compress the given string using the ZLIB data format. 2.gzencode - Create a gzip compressed string This function returns a compressed version of the input data compatible with the output

  • php字符串过滤与替换小结

    本文实例总结了php字符串过滤与替换的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php class cls_string_filter{  //将\n转化为<br/>--囧,这有意思么?  static public function nl2br($string){   return nl2br($string);  }  //将<br/>转化为\n  static public function br2nl($string){   $arra

  • php获取字符串中各个字符出现次数的方法

    本文实例讲述了php获取字符串中各个字符出现次数的方法.分享给大家供大家参考.具体实现方法如下: <?php //获取字符串是哪一个字符出现的字数最多 $str = "sdfhletlsflahlajgfd;lsje;r;wj;ralajfe149253573"; //方法一 $arr = str_split($str); //字符串分隔到数组中 $arr = array_count_values($arr); //用于统计数组中所有值出现的次数,返回一个数组 //键名为原数组的

  • php返回字符串中所有单词的方法

    本文实例讲述了php返回字符串中所有单词的方法.分享给大家供大家参考.具体分析如下: 这段代码返回字符串中的所有单词,当$distinct=true时去除重复元素.代码如下: <?php function split_en_str($str,$distinct=true) { preg_match_all('/([a-zA-Z]+)/',$str,$match); if ($distinct == true) { $match[1] = array_unique($match[1]); } so

  • php截取中文字符串函数实例

    本文实例讲述了php截取中文字符串函数.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php //中文字符串截取 function substr_zh($string,$sublen,$start=0,$code='UTF-8'){  if($code=='UTF-8'){   $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x8

  • 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

  • 可以保证单词完整性的PHP英文字符串截取代码分享

    直接上代码: /** * 完整词的截取 * * @param $str * @param $start * @param $length * * @return string */ public static function usubstr($str, $start, $length = null) { // 先正常截取一遍. $res = substr($str, $start, $length); $strlen = strlen($str); /* 接着判断头尾各6字节是否完整(不残缺)

  • java实现简单的英文文本单词翻译器功能示例

    本文实例讲述了java实现简单的英文文本单词翻译器功能.分享给大家供大家参考,具体如下: 直接上代码: package fanyi; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader;

  • Python实现简单截取中文字符串的方法

    本文实例讲述了Python实现简单截取中文字符串的方法.分享给大家供大家参考.具体如下: web应用难免会截取字符串的需求,Python中截取英文很容易: >>> s = 'abce' >>> s[0:3] 'abc' 但是截取utf-8的中文机会截取一半导致一些不是乱码的乱码.其实utf8截取很简单,这里记下来作为备忘 #-*- coding:utf8 -*- s = u'中文截取' s.decode('utf8')[0:3].encode('utf8') # 结果u

  • php简单压缩css样式示例

    本文实例讲述了php简单压缩css样式的方法.分享给大家供大家参考,具体如下: $css = ''; //找css目录 $root = $_SERVER['DOCUMENT_ROOT'].'/css/'; //directory where the css lives $files = explode(',',$_SERVER['QUERY_STRING']); if(sizeof($files)) { foreach($files as $file) { $css.= (is_file($ro

  • 简单了解python字符串前面加r,u的含义

    这篇文章主要介绍了简单了解python字符串前面加r,u的含义,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 u/U:表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码. 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u:但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码. 建议所有编码方式采用utf-8,即在py文件开头添加: # coding: utf-8

  • php简单实现多字节字符串翻转的方法

    本文实例讲述了php简单实现多字节字符串翻转的方法.分享给大家供大家参考.具体实现方法如下: <?php function mb_strev ($string, $encoding = null) { if ($encoding === null) { $encoding = mb_detect_encoding($string); } $length = mb_strlen($string, $encoding); $reversed = ''; while($length-- > 0) {

  • javascript时间戳和日期字符串相互转换代码(超简单)

    javascript时间戳和日期字符串相互转换代码(超简单) <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> // 获取当前

  • c++如何分割字符串示例代码

    话不多说,直接上代码 如果需要根据单一字符分割单词,直接用getline读取就好了,很简单 #include <iostream> #include <vector> #include <string> #include <sstream> using namespace std; int main() { string words; vector<string> results; getline(cin, words); istringstre

  • Android 仿今日头条简单的刷新效果实例代码

    点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据.有四个选项卡. 前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里.做着做着遇到很多问题,都解决了.这个效果感觉还不错,整理一下. MainActivity package com.example.fragmentmytest; import android.content.DialogInterface; import android.graphics.Color; import android.os.B

随机推荐