php字符串截取函数

2872
/**
 * 字符串截取
 * @param string $str       需要截取的字符串
 * @param int $len          截取长度
 * @param string $next      自定义后缀符号
 * @param int $start        第一个字符的位置
 * @param string $pre       自定义前缀符号
 * @param string $charset   字符串编码
 * @return string
 **/
function cutstr($str, $len, $next = '', $start = 0, $pre = '', $charset = 'utf8') {
    $str_len = (strlen($str) + mb_strlen($str, $charset)) / 2;
    if ($str_len <= $len && $start == 0) {
        return $str;
    }
    $substr = mb_substr($str, $start, $len, $charset);
    if ($str == $substr) {
        return $substr;
    }
    if ($str_len >= $len && $start == 0) {
        return $substr . $next;
    }
    if ($str_len > ($len + $start) && $start != 0){
        return $pre . $substr . $next;
    }
    if ($str_len >= $len && $start > 0) {
        return $pre . mb_substr($str, $start, $len, $charset);
    }
    return $str;
}

下面是一个例子:


$str = '玄玄 博客(作者小柯),本博客本人刚学不久的ThinkPHP3.2.3编写的!感觉ThinkPHP真心是一个不错的框架(比本人写的CI框架更好用些)。如果感觉不错请各位大神多多关注!谢谢';


<a><{:cutstr($str,20,'...',0,'')}></a>更简洁的就是<a><{:cutstr($str,20)}>

谢谢大家的支持!!!