php 字符串截取


    <?php

/**

  • 字符串截取
    *
  • @author [email protected]
  • @param string $str 原始字符串
  • @param int $len 截取长度(中文/全角符号默认为 2 个单位,英文/数字为 1。
  •                例如:长度 12 表示 6 个中文或全角字符或 12 个英文或数字)
    
  • @param bool $dot 是否加点(若字符串超过 $len 长度,则后面加 “…“)
  • @return string
    */
    class Onens {
    public static function g_substr($str, $len = 12, $dot = true) {
    $i = 0;
    $l = 0;
    $c = 0;
    $a = array();
    while ($l < $len) {
        $t = substr($str, $i, 1);
        if (ord($t) >= 224) {
            $c = 3;
            $t = substr($str, $i, $c);
            $l += 2;
        } elseif (ord($t) >= 192) {
            $c = 2;
            $t = substr($str, $i, $c);
            $l += 2;
        } else {
            $c = 1;
            $l++;
        }
        // $t = substr($str, $i, $c);
        $i += $c;
        if ($l > $len) break;
        $a[] = $t;
    }
    $re = implode('', $a);
    if (substr($str, $i, 1) !== false) {
        array_pop($a);
        ($c == 1) and array_pop($a);
        $re = implode('', $a);
        $dot and $re .= '...';
    }
    return $re;
    
    }
    }

你可能感兴趣的:(PHP,字符串截取)