// 글자수를 자르기 위한 함수
// $String 자를 문자열
// $Length 제한할 문자열 수
// $EndMark 실제로 문자열이 잘리면 뒤에 붙여질 마크
function StringCut( $String, $Length, $EndMark='' ) {
// 자를필요없으면 리턴
if( strlen( $String ) <= $Length ) return $String;
for( $i=0; $i<strlen( $String ); $i++ ) {
//아스키코드 129 번부터는 2 Byte 문자
//2 Byte 문자인경우 1 Byte 를 더 읽은 샘으로 침.
if( ord( substr( $String, $i-1, $i ) ) > 128 ) {
$i++;
$Length++;
}
//$Length 까지 왔을경우 리턴
if( $i >= $Length )
return substr( $String, 0, $Length ).$EndMark;
}
// 자를필요가 없지만 글자수와 byte 수를 비교하지 못함으로
// 루프를 다돌아도 리턴되지 않는다면 그냥 월래 문자열 return;
return $String;
}
mb_internal_encoding("UTF-8");
echo mb_substr('무조건 잘라진다구!!', 0, 6);
이런것도 있다네요~