Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

PHP PHP 함수 - 한글 단어 마지막 글자 받침(종성) 확인

페이지 정보

조회 177회 작성일 20-04-29 09:42
한글 문자열의 마지막 글자에 받침이 있는지 확인하는 PHP 함수 has_batchim()을 소개한다. UTF-8 문자열을 UTF-16BE로 변환해 마지막 글자의 유니코드 코드 포인트를 구하고, '가'의 기준값 44032를 뺀 값을 28로 나눈 나머지가 0보다 크면 받침이 있는 것으로 판별한다. 예시로 깃허브에 '을/를' 조사를 붙이는 사용법을 보여준다.
<?php
// License: Public Domain
//
// 마지막 글자에 받침이 있으면 0보다 큰 정수를 반환하고
// 받침이 없으면 0을 반환한다.
//
// 예:
// $word = '깃허브';
// echo $word . (has_batchim($word) ? '을' : '를');
function has_batchim($str, $charset = 'UTF-8') {
$str = mb_convert_encoding($str, 'UTF-16BE', $charset);
$str = str_split(substr($str, strlen($str) - 2));
$code_point = (ord($str[0]) * 256) + ord($str[1]);
if ($code_point < 44032 || $code_point > 55203) return 0;
return ($code_point - 44032) % 28;
}


Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.