截取处理UTF-8编码字符串
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#$%^截取**/?