public static function get_chinese_substr($str,$size = 20){
$rule = '/([a-zA-Z0-9]+)/';//这里没有用,或空格来分割是为了组装时把这个空格或符号保存下来
$arr = preg_split($rule,$str,0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$arr_len= count($arr);
$content = '';
$temp = '';
for($i = 0 ;$i < $arr_len;$i++){
$str = '';
for($j = 0;$j < strlen($arr[$i]);){
if (ord ( substr ( $arr[$i], $j, 1 ) ) > 0xa0) { // 如果字符串中首个字节的ASCII序数值大于0xa0,则表示汉字
$str .= substr ( $arr[$i], $j, 3 ); // 每次取出三位字符赋给变量$tmpstr,即等于一个汉字
$j = $j+3;
$temp = '';
}else{
$temp .= substr ( $arr[$i], $j, 1 ); // 如果不是汉字,则每次取出一位字符赋给变量$tmpstr
$j++;
}
}
if(strlen($content)< $size){
$content .= $str.$temp;
$temp = '';
} else{
break;
}
}
return $content;
}
posted on 2017-04-06 17:36  allen817  阅读(183)  评论(0编辑  收藏  举报