자동완성을 구현하기 위해서는 검색 키워드를 분리해서 DB에 넣어놔야, 

자소 검색이 가능하겠죠??


function jaso_split($string)
{
    //한글을 자소단위로 분리한다. (ex. 바보 => ㅂㅏㅂㅗ, 닭 => ㄷㅏㄹㄱ)
    $cho_array = array("ㄱ"		, "ㄲ"		, "ㄴ"		, "ㄷ"		, "ㄸ"
	                 , "ㄹ"		, "ㅁ"		, "ㅂ"		, "ㅃ"		, "ㅅ"
					 , "ㅆ"		, "ㅇ"		, "ㅈ"		, "ㅉ"		, "ㅊ"
					 , "ㅋ"		, "ㅌ"		, "ㅍ"		, "ㅎ");
    
	$jung_array = array("ㅏ"	, "ㅐ"		, "ㅑ"		, "ㅒ"		, "ㅓ"
					  , "ㅔ"	, "ㅕ"		, "ㅖ"		, "ㅗ"		, "ㅗㅏ"
					  , "ㅗㅐ"	, "ㅗㅣ"	, "ㅛ"		, "ㅜ"		, "ㅜㅓ"
					  , "ㅜㅔ"	, "ㅜㅣ"	, "ㅠ"		, "ㅡ"		, "ㅡㅣ"
					  , "ㅣ");

    $jong_array = array(""		, "ㄱ"		, "ㄱㄱ"	, "ㄱㅅ"	, "ㄴ"
					  , "ㄴㅈ"	, "ㄴㅎ"	, "ㄷ"		, "ㄹ"		, "ㄹㄱ"
					  , "ㄹㅁ"	, "ㄹㅂ"	, "ㄹㅅ"	, "ㄹㅌ"	, "ㄹㅍ"
					  , "ㄹㅎ"	, "ㅁ"		, "ㅂ"		, "ㅂㅅ"	, "ㅅ"
					  , "ㅅㅅ"	, "ㅇ"		, "ㅈ"		, "ㅊ"		, "ㅋ"
					  , "ㅌ"	, "ㅍ"		, "ㅎ");

    $str = iconv("CP949", "UTF-16LE", $string);
    
	for($i = 0; $i < strlen($str); $i += 2) 
	{
        $byte1 = "0".dechex(ord($str[$i + 1]));
        $byte2 = "0".dechex(ord($str[$i]));
        $code = hexdec(substr($byte1, strlen($byte1) - 2, 2).substr($byte2, strlen($byte2) - 2, 2));

        if($code >= 0xAC00 && $code <= 0xD7A3) {
            $temp = $code - 0xAC00;
            $jong = $temp % 28;
            $jung = (($temp - $jong) / 28) % 21;
            $cho = floor((($temp - $jong) / 28) / 21);
            $rtn_str .= iconv("CP949", "UTF-16LE", $cho_array[$cho].$jung_array[$jung].$jong_array[$jong]);
        }
        else
		{
			$rtn_str .= $str[$i].$str[$i + 1];
		}
    }

    return iconv("UTF-16LE", "CP949", $rtn_str);
}