php截取包含混合字符串長度的函數

n6xb 9年前發布 | 1K 次閱讀 PHP

 肯定是中文、英文、特殊字符都能實現的。
//utf-8中文截取,單字節截取模式
function cn_substr_utf8($str,$length,$append='...',$start=0){
    if(strlen($str)<$start+1){
        return '';
    }
    preg_match_all("/./su",$str,$ar);
    $str2='';
    $tstr='';
    for($i=0;isset($ar[0][$i]);$i++){
        if(strlen($tstr)<$start){
            $tstr.=$ar[0][$i];
        }else{
            if(strlen($str2)<$length + strlen($ar[0][$i])){
                $str2.=$ar[0][$i];
            }else{
                break;
            }
        }
    }
    return $str==$str2?$str2:$str2.$append;
}
//----使用舉例如下:
echo cn_substr_utf8('我是一個,和哈,哦也,,國家!',12);

 本文由用戶 n6xb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!