php实现的简单压缩英文字符串的代码_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; 
}

时间: 2024-09-27 10:40:20

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

php生成随机数或者字符串的代码_php实例

$len表示长度,代码如下: 复制代码 代码如下: /** * 产生随机字符串 * * 产生一个指定长度的随机字符串,并返回给用户 * * @access public * @param int $len 产生字符串的位数 * @return string */ function randstr($len=6) { $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789-@#~'; // characters

一个简单的PHP验证码实现代码_php实例

实现代码: <?php //将验证码保存到session里,供全局使用 session_start(); $nums = ""; for($i=0;$i<4;$i++){  //产生随机数并转换成十六进制  $nums.=dechex(mt_rand(0,15)); } //将验证码写入session $_SESSION['code']=$nums;  //设置验证码长和宽 $_width = 60; $_height = 20; //创建一张图片 $_img = imag

可以保证单词完整性的PHP英文字符串截取代码分享_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字节是否完整(不残缺)

php中计算未知长度的字符串哪个字符出现的次数最多的代码_php实例

用到的函数: str_split:把字符串分割到数组中.类似的函数explode() 函数把字符串分割为数组.array_count_values:用于统计数组中所有值出现的次数.arsort:对数组进行逆向排序并保持索引关系.主要用于对那些单元顺序很重要的结合数组进行排序.$str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";//任意长度字符串 复制代码 代码如下: $arr=str_split($str); $arr

基于PHP实现简单的随机抽奖小程序_php实例

一个抽奖小程序,概论可控,也可某个奖品在前端显示,而程序中根本不可能获得!把所有的概率x10后相加起来,新数组中每项的值等于它前几个的和加上它本身. 然后随即生成一个0到最大数之间的一个数,通过循环查看它属于那个区间,返回该区间的key. 代码如下 $prize = array( 1 => 3.5, //3.5%机率 2 => 2.5, 3 => 6, 4 => 2, 5 => 42, //42%机率 6 => 36, 7 => 2, 8 => 4, 9 =

php float不四舍五入截取浮点型字符串方法总结_php实例

php中截取浮点型大致有下面几种方法: 1. float round ( float $val [, int $precision ] ) 返回将 val 根据指定精度 precision (十进制小数点后数字的数目)进行四舍五入的结果.precision 也可以是负数或零(默认值).     echo round(4.3)  //4 2. string sprintf ( string $format [, mixed $args [, mixed $... ]] ) 返回格式化数据的字符串

一个更简单的无限级分类菜单代码_php基础

首先要感谢terry39的指点,元旦闲来无事,我就把他所讲的原理简单实现一下,这个程序的关键就在于数据表的设计很有特色,不用递归,依靠个简单SQL语句就能列出菜单,看看这个数据表怎么设计的: 数据库字段大概如下: ----------------------------------------------------------------------------------- id              编号 fid             父分类编号 name         分类名 p

Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能_php实例

本文实例讲述了Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能.分享给大家供大家参考,具体如下: 扩展插件下载地址,解压后复制到/protected/vendor/ https://github.com/muayyad-alsadi/yii-EClientScript main配置文件配置插件,components里面增加 //js,css代码压缩,合并 'clientScript' => array( 'class' => 'application.ven

php 判断是否是中文/英文/数字示例代码_php技巧

复制代码 代码如下: $str='asb天水市12'; if (preg_match("/^[\x7f-\xff]+$/", $str)){ echo '全部是汉字'; }else { echo '不全是汉字'; } /** PHP自带的判断是否是中文, eregi('[^\x00-\x7F]', $str ) //中文 eregi('[0-9]', $str) //数字 eregi('[a-zA-Z]', $str)//英文 */ if (eregi('[^\x00-\x7F]',