位图索引压缩和解压程序

2015年4月27日 飞飞 阅读(2.22K)

在做位图索引时会遇到要将程序压缩和解压的问题,主要是为了让数据占的空间更小,下边是两个处理压缩和解压的程序欢迎大家批评指导
压缩:将$bitmap = ‘000111000000’; 数据转换为 $bitmap = ‘031306’; 反之将其解压为原始格式

压缩程序:

$bitmap = ‘000111000000’;

$result = compression($bitmap);
echo $result;

function compression($bitmap)
{
$index = $count = 0;
$prev_bit = ”;
while(isset($bitmap[$index]))
{
if($bitmap[$index] != $prev_bit)
{
if(!empty($count))
$result .= $count;
$result .= $bitmap[$index];
$prev_bit = $bitmap[$index];
$count = 0;
}
$count++;
$index++;
}
$result .= $count;
return $result;
}

解压:

$bitmap = ‘031306’;
uncompression($bitmap);

function uncompression($bitmap)
{
$index = 0; $currentstr = ”;
while(isset($bitmap[$index]))
{
if($index%2 != 0)
{
$count = $bitmap[$index];
$currentstr = $bitmap[$index-1];
$result .= str_repeat($currentstr,$count);
}
$index++;
}
return $result;
}

 

未经允许不得转载:PHP学习网 » 位图索引压缩和解压程序
分享到:

相关推荐

评论抢沙发

要发表评论,您必须先

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

扫码关注微信公众号

扫描关注微信公众号