截取处理UTF-8编码字符串_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > 截取处理UTF-8编码字符串

截取处理UTF-8编码字符串

 2012/5/5 12:45:42  flyer0126  程序员俱乐部  我要评论(0)
  • 摘要:PS:原创文章,如需转载,请注明出处,谢谢!本文地址:http://flyer0126.iteye.com/blog/1508695/***截取处理UTF-8编码字符串*规则:中文2个字符,数字、英文1个字符;截取末尾不足一个汉字的则舍弃。*@paramstring$str*@paramint$len截取出的字符长度*@authorflyer0126*@since2012/05/03*/functionsubstr_utf8_cn($str,$len){$length=strlen($str)
  • 标签:字符串

PS:原创文章,如需转载,请注明出处,谢谢! ????

本文地址:http://flyer0126.iteye.com/blog/1508695

?

/**
 * 截取处理UTF-8编码字符串
 * 规则:中文2个字符,数字、英文1个字符;截取末尾不足一个汉字的则舍弃。
 * @param string $str
 * @param int    $len 截取出的字符长度
 * @author flyer0126
 * @since 2012/05/03
 */
function substr_utf8_cn($str, $len)
{
	$length  = strlen($str);
	if ($length <=  $len)
	{
		return $str;
	}

	$result_str = '';
	for($i=0;$i<$len;$i++)
	{
		$temp_str=substr($str,0,1);
		if(ord($temp_str) > 127)
		{
			if($i+1<$len)
			{
				$result_str .= substr($str,0,3);
				$str = substr($str,3);
			}
			$i++;
		}
		else
		{
			$result_str .= substr($str,0,1);
			$str=substr($str,1);
		}
	}

	return $result_str;
}

//Useage:
$str1 = '截取处理字符串测试内容';
$str2 = '11aa22bb截取处理字符串测试内容';
$str3 = '#$%^截取处理字符串测试内容';

echo substr_utf8_cn($str1, 9, '...'),PHP_EOL;
echo substr_utf8_cn($str2, 9),PHP_EOL;
echo substr_utf8_cn($str3, 9);

//Outputs:
/**
截取处理
11aa22bb
#$%^截取
**/
?
发表评论
用户名: 匿名