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

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

PHP中文网
PHP中文网Original
2016-05-26 08:20:462259browse

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

Statement:
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