프로그래밍/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를 인자값으로 체택해서 사용가능 할듯..
기본함수니 나머지는 튜닝해서 사용하면 될 듯..