SMS 문자메시지를 전송할 때,
단문으로 보낼지 장문으로 보낼지 판단해야 하는 경우 활용하세요.

한글과 특수문자가 혼용된 문자는 단문으로 보낼 수 있음에도 strlen 으로 문자열 길이를 체크 했을 때 100byte 가는 상황이 많습니다.

한글은 2byte, 특수문자는 1byte 로 계산해서 보내면 보다 정확하게 체크할 수 있습니다.

$pattern =  '/[x{1100}-x{11FF}x{3130}-x{318F}x{AC00}-x{D7AF}]+/u'; // 한글 (2byte 계산)
preg_match_all($pattern, $sms_info['comment'], $match);
$comment_mb_string = implode('', $match[0]);

$pattern = '/[^x{1100}-x{11FF}x{3130}-x{318F}x{AC00}-x{D7AF}0-9a-zA-Z]+/u'; // 특수문자 (1byte 계산)
preg_match_all($pattern, $sms_info['comment'], $match);
$comment_special_string = implode('', $match[0]);

$real_length = strlen($sms_info['comment']) - strlen($comment_mb_string) - strlen($comment_special_string) + mb_strlen($comment_mb_string, 'utf-8'  * 2 + mb_strlen($comment_special_string, 'utf-8');


$real_length 변수에 메시지 길이 값이 세팅됩니다.^^