<?
/*========================================
han_split.php (js_han_split.jsÀÇ php¹öÀü);
ÇÑ±Û Ãʼº,Áß¼º,Á¾¼º ÀÚ¸£±â
»ç¿ë¹ý
arr = han_split('뷃');
arr -> array('¤²','¤Î','¤¬');
¿ø¸®
ÇѱÛÀÇ À¯´ÏÄÚµå´Â
Ãʼº ±âÁØÀ¸·Î 588°³·Î ³ª´ ¼ö ÀÖ´Ù.(°¡~깋:588°³, ÇÏ~힣µµ °¹¼ö°¡ °°´Ù)
Ãʼº 19°³, Áß¼ºÀº 21°³, Á¾¼ºÀº 28°³·Î ³ª´²Áö´Âµ¥, ÀÌ°ÍÀÌ ÀÏÁ¤ÇÏ°Ô ³ª´¶´Ù.
±× ±ÔÄ¢À» ¹ÙÅÁÀ¸·Î ÃÊ,Áß,Á¾¼ºÀÇ Â÷À̸¦ °è»êÇؼ ÃÊ,Áß,Á¾¼ºÀ» ¾Ë¾Æ³½´Ù.
function han_split_string($string='',$enc_type='EUC-KR'){
$re_arr = array();
for($i=0,$m=mb_strlen($string,$enc_type);$i<$m;$i++){
$char = mb_substr($string,$i,1,$enc_type);
if($char=='&'){
$char='';
while($char2!=';' && $i<$m){
$char2 = mb_substr($string,$i++,1,$enc_type);
$char .= $char2;
}
$i--;
}
$re_arr[] = han_split($char,$enc_type);
}
return $re_arr;
}
function han_split($char='',$enc_type='EUC-KR'){
$char_st = 44032 ;//'°¡'ÀÇ À¯´ÏÄÚµå ³Ñ¹ö(10Áø¼ö)
$char_ed = 55203 ;//'Èþ'ÀÇ À¯´ÏÄÚµå ³Ñ¹ö(10Áø¼ö)
//Ãʼº±¸ºÐ : 588´ÜÀ§·Î À߸²
//°¡±î³ª´Ùµû¶ó¸¶¹Ùºü»ç½Î¾ÆÀÚÂ¥Â÷īŸÆÄÇÏ :Ãʼº 19°³
//°¡°³°¼°Â°Å°Ô°Ü°è°í°ú±¥±«±³±¸±Å±Ë±Í±Ô±×±á±â : Áß¼º 21°³
//°¡°¢갂갃°£갅갆°¤°¥°¦°§갋갌갍갎갏°¨°©°ª°«°¬°°®°¯갘°°°±°² : Á¾¼º 28°³
$arr_1st=array('¤¡','¤¢','¤¤','¤§','¤¨','¤©','¤±','¤²','¤³','¤µ','¤¶','¤·','¤¸','¤¹','¤º','¤»','¤¼','¤½','¤¾');//Ãʼº 19°³
$arr_2nd=array('¤¿','¤À','¤Á','¤Â','¤Ã','¤Ä','¤Å','¤Æ','¤Ç','¤È','¤É','¤Ê','¤Ë','¤Ì','¤Í','¤Î','¤Ï','¤Ð','¤Ñ','¤Ò','¤Ó');//Áß¼º 21°³
$arr_3th=array('','¤¡','¤¢','¤£','¤¤','¤¥','¤¦','¤§','¤©','¤ª','¤«','¤¬','¤','¤®','¤¯','¤°','¤±','¤²','¤´','¤µ','¤¶','¤·','¤¸','¤º','¤»','¤¼','¤½','¤¾');//Á¾¼º 28°³
if(strpos($char,'')===false){ //HTML¿£Æ¼Æ¼°¡ ¾Æ´Ò °æ¿ì
$char = mb_convert_encoding($char, "UTF-16", $enc_type);
$char = mb_substr($char,0,1,"UTF-16");
$char_hex = '';
for($i=0,$m=strlen($char);$i<$m;$i++){
$char_hex .= sprintf('%02s',base_convert(ord($char{$i}),10,16));
}
//print("¹®ÀÚ¿ ±æÀÌ : $m<br/>");
//print("16Áø¼ö¹®ÀÚ¿ : $char_hex<br/>");
$char_int=base_convert($char_hex,16,10);
}else{
$char_int = preg_replace('/[^0-9]/','',$char);
}
// print "$char<br>";
// print "$char_hex<br>";
// print "$char_int";
//print("$char_int < $char_st || $char_int > $char_ed");
if($char_int < $char_st || $char_int > $char_ed) return false;//ÇѱÛÀÌ ¾Æ´Ï´Ù
$uninum2 = $char_int-$char_st;
$arr_1st_v = floor($uninum2/588);
$uninum2 = $uninum2%588;
$arr_2nd_v = floor($uninum2/28);
$uninum2 = ($uninum2%28);
$arr_3th_v = $uninum2;
$return_arr=array($arr_1st[$arr_1st_v],$arr_2nd[$arr_2nd_v],$arr_3th[$arr_3th_v]);
return $return_arr;
}
?>
|
|