주소록같은 프로그램을 만들때 ㄱ,ㄴ,ㄷ,ㄹ.. 이렇게 소팅을 해야할때가 있습니다. 이럴때 간단하게
하기 위해서 만들어본 한글 자음 구하기 클래스입니다. -_-;; ㄱ은 1, ㄴ은 2.. 이런식으로 해서 DB에
저장해두고.. 거기에 인덱스 걸고 쿼리하는게 좀더 빠르고 편하겠져.. ^^
P.S >> 간단해서.. 설명이 없습니다.. -_-;; 원하시는 분들이 계시다면.. 달아드리겠습니다..
영문의 처리에 대한 부분은 원래소스에서 뺐습니다.. 왜냐~ 여러분들도 한번 해보시라고..
( 그래야 조금이나마 공부가 되죠 ^^ )
예전의 어떤분의 소스를 본 기억을 참조했는데.. 기억못해죄송합니다.. ㅠ.ㅠ
소스 ==========================================================================================
class SelectHanCategory
{
// 가..나..다..의 16진수값들
var $hexcode = array(“b0a1” => “ㄱ”, “b3aa” => “ㄴ”,”b4d9″ => “ㄷ”, “b6f3” => “ㄹ”,”b8b6″ => “ㅁ”,
“b9d9” => “ㅂ”,”bbe7″ => “ㅅ”, “bec6” => “ㅇ”,”c0da” => “ㅈ”, “c2f7” => “ㅊ”,
“c4ab” => “ㅋ”, “c5b8” => “ㅌ”, “c6c4” => “ㅍ”,”c7cf” => “ㅎ”, “c8ff” => “”);
var $hexarray, $hexcount;
function SelectHanCategory() {
$this->hexcount = count($this->hexcode);
for($i=0; $i < $this->hexcount ; $i++) {
$this->hexarray[] = key($this->hexcode);
next($this->hexcode);
}
}
function IsHangul($ch)
{
$ch = ord($ch);
if($ch >= 0xa1 && $ch <= 0xfe) return true;
return false;
}
function Check($str)
{
if($this->IsHangul(substr($str, 0, 1))) {
$current_hexcode = bin2hex(substr($str, 0, 2));
for ($i=0,$j=1;$i<$this->hexcount;$i++,$j++) {
if ($current_hexcode>=$this->hexarray[$i] && $current_hexcode<$this->hexarray[$j]) {
break;
}
}
return array($j,$this->hexcode[$this->hexarray[$i]]);
}
else return array(-1);
}
}
?>
사용법 ========================================================================================
$category = new SelectHanCategory();
$return = $category->Check(“음하하하.. 안녕하세요.”);
echo “해당 카테고리 : $return[1] , DB에 저장한 값 : $return[0]”;