方法一: // Helper::truncate_utf8_string($content,20,false); //不显示省略号 // Helper::truncate_utf8_string($content,20); //显示省略号 // 字符截取函数 public static function truncate_utf8_string($string, $length, $etc = '...') { $result = ''; $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'UTF-8'); $strlen = strlen($string); for ($i = 0; (($i < $strlen) && ($length > 0)); $i++) { if ($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0')) { if ($length < 1.0) { break; } $result .= substr($string, $i, $number); $length -= 1.0; $i += $number - 1; } else { $result .= substr($string, $i, 1); $length -= 0.5; } } $result = htmlspecialchars($result, ENT_QUOTES, 'UTF-8'); if ($i < $strlen) { $result .= $etc; } return $result; } 方法二: /** +---------------------------------------------------------- * 功能:字符串截取指定长度 +---------------------------------------------------------- * @param string $string 待截取的字符串 * @param int $len 截取的长度 * @param int $start 从第几个字符开始截取 * @param boolean $suffix 是否在截取后的字符串后跟上省略号 +---------------------------------------------------------- * @return string 返回截取后的字符串 +---------------------------------------------------------- */ function cutStr($str, $len = 100, $start = 0, $suffix = 1) { $str = strip_tags(trim(strip_tags($str))); $str = str_replace(array("\n", "\t"), "", $str); $strlen = mb_strlen($str); while ($strlen) { $array[] = mb_substr($str, 0, 1, "utf8"); $str = mb_substr($str, 1, $strlen, "utf8"); $strlen = mb_strlen($str); } $end = $len + $start; $str = ''; for ($i = $start; $i < $end; $i++) { $str.=$array[$i]; } return count($array) > $len ? ($suffix == 1 ? $str . "…" : $str) : $str; }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。