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 #$%^截取 **/?