PHP / 한글 자르기


2바이트 문자를 깨끗하게 잘라주는 함수를 구현함으로써 한글을 잘라서 사용할 수 있다. 
아래 함수의 내용을 설명하면, 
문자열의 처음부터 시작하여 이것이 2바이트문자이면(127보다크면), 자를 문자열의 길이를 2를 증가시키고 그렇지않으면 1을 증가시킨다. 
이렇게해서 마지막에 원래의 문자열에서 자를 문자열의 길이만큼을 시작점(0)에서 잘라주면 된다. 


순서
1. 입력 파라미터 
   1) 자를 문자열($String)
   2) 최대 길이($MaxLen), 
   3) 말줄임표(보통 ... 을 사용)($ShortenStr)를 받는다.
2. 원래 문자열의 길이 획득한다.
3. 최대문자열의 길이에서 말줄임표문자열의 길이를 뺀다.
4. 원래문자열의 길이가 최대문자열의 길이보다 작으면 그냥 리턴한다. 
5. 2바이트문자라고 생각되면 $i를 1을 더 증가시켜서 결국 2가 증가하게 된다. 다음에 오는 1바이트는 당연 지금 바이트의 문자에 귀속되는 문자이다. 
6. 위에서 구한 문자열의 길이만큼으로 자른다. 
7. 말줄임문자를 붙여서 리턴해준다. 


코드

// 1 

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

    // 2
    $StringLen = strlen($String); 
    // 3
    $EffectLen = $MaxLen - strlen($ShortenStr); 
    // 4
    if ( $StringLen < $MaxLen )
        return $String; 
    // 5
    for ($i = 0; $i <= $EffectLen; $i++) { 
        $LastStr = substr($String, $i, 1); 
        if ( ord($LastStr) > 127 ) 
            $i++; 
    } 
    // 6
    $RetStr = substr($String, 0, $i); 
    // 7
    return $RetStr .= $ShortenStr;