# 한글단어의 초성을 기준으로 가,나,다로 구분한다. [사용처 : 단어사전 등의 색인 검색]
if( ! function_exists('check_unicode_ord')) {
# 단어의 초성을 기준으로 가/나/다 구분하는 함수
function check_unicode_ord($string) {
$h = unicode_ord($string);
if($h >= 44032 && $h <= 45207) return "가";
if($h >= 45208 && $h <= 45795) return "나";
if($h >= 45796 && $h <= 46971) return "다";
if($h >= 46972 && $h <= 47559) return "라";
if($h >= 47560 && $h <= 48147) return "마";
if($h >= 48148 && $h <= 49323) return "바";
if($h >= 49324 && $h <= 50499) return "사";
if($h >= 50500 && $h <= 51087) return "아";
if($h >= 51088 && $h <= 52263) return "자";
if($h >= 52264 && $h <= 52851) return "차";
if($h >= 52852 && $h <= 53439) return "카";
if($h >= 53440 && $h <= 54027) return "타";
if($h >= 54028 && $h <= 54615) return "파";
if($h >= 54616 && $h <= 55203) return "하";
return "기타";
}
function unicode_ord($string) {
$h = ord($string{0});
if ($h <= 0x7F) {
return $h;
} else if ($h < 0xC2) {
return false;
} else if ($h <= 0xDF) {
return ($h & 0x1F) << 6 | (ord($string{1}) & 0x3F);
} else if ($h <= 0xEF) {
return ($h & 0x0F) << 12 | (ord($string{1}) & 0x3F) << 6 | (ord($string{2}) & 0x3F);
} else if ($h <= 0xF4) {
return ($h & 0x0F) << 18 | (ord($string{1}) & 0x3F) << 12 | (ord($string{2}) & 0x3F) << 6 | (ord($string{3}) & 0x3F);
} else {
return false;
}
}
}
사용방법
$kr_key = check_unicode_ord($string);
// '도라지' => '다'
// '백화점' => '바'
댓글 없음:
댓글 쓰기