프로그래밍/PHP

PHP mb_substr 없이 UTF-8 한글 글자수(byte) 제한

꿈을드림 2012. 12. 17. 11:40

기존 설치 된 곳에 MB_ 라이브러리 미 설치가 되어서.. 한글이 뭐시기 했다..

프로젝트를 하는데 글자를 잘라 달라고 한다.

그래서 한글을 1글자로 해서 잘라 줬더니..  byte로 제한해서 달란다..

그래서 그냥 단순희 utf-8 한글은 3바이트 인식 이라 생각하고 간단히 코딩함..


function str_cut_string($str, $limit)

{

$str2   = '';

$length = 0;

$fix    = '';


for($i=0;$i<strlen($str);)

{

if(ord($str[$i])>127)

{

$hangul =  substr($str,$i,3);

//echo $i." ".$hangul;

$length+=3;

$i = $i+3;

}

else 

{

$hangul =  substr($str,$i,1);

//echo $i." ".$hangul;

$length+=1;

$i++;

}

if($length >$limit - 4)

{

$fix = "...";

break;

}

else 

{

$str2=$str2.$hangul;

}

}

return $str2.$fix;

}


설명은 그냥;; 함수다.. 문장하고 제한 숫자다.. 그게 다인듯.. $fix를 인자값으로 체택해서 사용가능 할듯.. 

기본함수니 나머지는 튜닝해서 사용하면 될 듯..