首页 >php教程 >PHP源码 >字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。

字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。

PHP中文网
PHP中文网原创
2016-05-26 08:20:462282浏览

php代码

<?php
/**
 * 字符串,重复值压缩
 * @param string $str	字符串
 * @param string $code_type encode|decode
 * @return string|mixed
 */
function str_compress($str, $code_type=&#39;encode&#39;) {
	
	$code_type = strtolower(trim($code_type));
	if (&#39;encode&#39; == $code_type || $code_type) {
		$res = preg_replace_callback(&#39;#(.)(\1+)#is&#39;, function($match){
			return $match [1] . &#39;[&#39; . strlen($match[0]) . &#39;]&#39;;
		}, $str);
	} else {
		$res = preg_replace_callback(&#39;#(.)\[(\d+)\]#is&#39;, function($match){
			return str_repeat($match [1], $match [2]);
		}, $str);
	}
	
	return $res;
}

// 测试 -----------------
$old_str = $str = &#39;aavaabbcce&#39;;
echo $old_str;
echo "";
$str = str_compress($str);
echo $str;
echo "";
$str = str_compress($str, 0);
echo $str;
echo "";
if ($str == $old_str) {
	echo 1;
} else {
	echo 0;
}

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn