/** * 中文字符串截取 * @param $str * @param int $start @起始位置 * @param $length @截取长度 * @param string $ending @结尾符 * @return string */ private static function stringSubstr($str, $start=0, $length, $ending=''){ //$str = html_entity_decode($str); //实体字符转为html $str = trim(strip_tags($str)); //去除html字符 $str = preg_replace("/\s| | /", "", $str); $mb_str = mb_substr($str, $start, $length, 'utf-8'); if($length < method::abslength($str)){ $output = $mb_str.$ending; }else{ $output = $mb_str; } return $output; } /** * 可以统计中文字符串长度的函数 * @param $str @要计算长度的字符串 * @return int @计算长度类型,0(默认)表示一个中文算一个字符,1表示一个中文算两个字符 */ private static function abslength($str){ if(empty($str)){ return 0; } if(function_exists('mb_strlen')){ return mb_strlen($str,'utf-8'); } else { preg_match_all("/./u", $str, $ar); return count($ar[0]); } }