태그 상관없이 한글 문자열 자르기

/**************************************************************
* $String : 원본 문자열 *
* $MaxLen : 자를 문자열 길이 *
* $ShortenStr : 말줄임 문자열 *
***************************************************************/

function Shorten_String($String, $MaxLen, $ShortenStr) {

$StringLen = strlen($String); // 원래 문자열의 길이를 구함

for ($i = 0, $count = 0, $tag = 0; $i <= $StringLen && $count < $MaxLen; $i++ ) {
$LastStr = substr($String, $i, 1);
if ($LastStr == ‘<') $tag = 1; // 태그 시작
if ($tag && $LastStr == ‘>’) { $tag = 0; continue; } // 태그 끝
if ($tag) continue;
if ( ord($LastStr) > 127 ) { $count++; $i++; }
$count++;
// 2바이트문자라고 생각되면 $i를 1을 더 증가시켜
// 결국은 2가 증가하게 된다.
// 다음에 오는 1바이트는 당연 지금 바이트의 문자에 귀속되는 문자이다.

}

$RetStr = substr($String, 0, $i);
// 위에서 구한 문자열의 길이만큼으로 자른다.
if ($count<$MaxLen)
return $RetStr;
else
return $RetStr .= $ShortenStr;
// 여기에 말줄임문자를 붙여서 리턴해준다.
}

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다