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

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

PHP中文网
PHP中文网Original
2016-05-26 08:20:462324Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP递归创建文件Nächster Artikel:支付宝PHP SDK(单文件)