사이트 내 전체검색
PHP
UTF-8 문자열 자르기 mb_substr() iconv_substr() mb_strimwidth
로빈아빠
https://cmd.kr/php/13 URL이 복사되었습니다.

본문

mb_substr()
없으면
iconv_substr()
안되면



//==================================================
//              utf8 전용 문자열 처리함수
//==================================================
//===== utf8문자열을 배열로 만든다.
function utf8String2Array($str){
    $re_arr = array();    $re_icount = 0;
    for($i=0,$m=strlen($str);$i<$m;$i++){
        $ch = ord($str{$i});
        if($ch<128){$re_arr[$re_icount++]=substr($str,$i,1);}        
        else if($ch<224){$re_arr[$re_icount++]=substr($str,$i,2);$i+=1;}        
        else if($ch<240){$re_arr[$re_icount++]=substr($str,$i,3);$i+=2;}        
        else if($ch<248){$re_arr[$re_icount++]=substr($str,$i,4);$i+=3;}        
    }
    return $re_arr;
}
//===== utf8문자열을 잘라낸다.
function utf8Substr($str,$start,$length=NULL){
    return implode('',array_slice(php_fn_utf8_to_array($str),$start,$length));
}
//===== utf8문자열의 길이를 구한다.
function utf8Strlen($str){
    return count(php_fn_utf8_to_array($str));
}
//===== mb 함수가 지원안될 때
if(!function_exists(mb_substr)){
    function mb_strlen($str,$encoding='UTF-8'){
        return utf8Strlen($str);
    }
    function mb_substr( $str, $start ,$length=null ,$encoding='utf-8'){
        return utf8Substr($str,$start,$length);
    }
}
------------------------------- 추가 --------------------------
if(!function_exists(cut_str_width)){
 function cut_str_width($str, $len, $suffix="…")
 {
  $s = mb_strimwidth($str, 0, $len,$suffix,"utf-8");  // PHP5용 함수 UTF-8 짜르기
  return $s . $suffix;
 }
}

댓글목록

등록된 댓글이 없습니다.

PHP
871 (18/18P)

Search

Copyright © Cmd 명령어 18.188.110.150