강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

UTF-8 기준, 한글을 초성,중성,종성으로 분리하기
작성자 : 13 김영철
등록날짜 : 2009.01.14 22:04
3,453
<?php
function GetUtf8String($str) {
$arr_cho =
array(
"ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ",
"ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ",
"ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ");
$arr_jung =
array(
"ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ",
"ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ",
"ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ");
$arr_jong =
array(
"", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ",
"ㄷ", "ㄹ", "ㄺ", "ㄻ", "ㄼ", "ㄽ", "ㄾ",
"ㄿ", "ㅀ", "ㅁ ", "ㅂ", "ㅄ", "ㅅ", "ㅆ",
"ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ");

$unicode =
array();
$values =
array();
$lookingFor = 1;

for ($i = 0; $i <
strlen( $str ); $i++ ) {
$thisValue =
ord( $str[ $i ] );

if ( $thisValue < 128 ) {
$unicode[] = $thisValue;
} else {
if (
count($values)==0) $lookingFor = ($thisValue<224) ? 2 : 3;
$values[] = $thisValue;
if (
count($values)==$lookingFor) {
$number = ($lookingFor==3) ? (($values[0]%16)*4096) + (($values[1]%64)*64) + ($values[2]%64) : (($values[0]%32)*64)+($values[1]%64);
$unicode[] = $number;
$values =
array();
$lookingFor = 1;
}
}
}

$splitStr = '';
while (
list($key, $code) = each($unicode)) {
if ($code>=44032 && $code<=55203) {
$temp = $code-44032;

$cho = (int)($temp/21/28);
$jung = (int)(($temp%(21*28)/28));
$jong = (int)($temp%28);

$splitStr.= $arr_cho[$cho].$arr_jung[$jung].$arr_jong[$jong];
} else {
$temp =
array($unicode[$key]);

foreach($temp as $ununicode) {
if ( $ununicode<128) {
$splitStr.=
chr($ununicode);
} elseif ($ununicode<2048) {
$splitStr.=
chr(192+(($ununicode-($ununicode%64))/64));
$splitStr.=
chr(128+($ununicode%64));
} else {
$splitStr.=
chr(224+(($ununicode-($ununicode%4096))/4096));
$splitStr.=
chr(128+((($ununicode%4096)-($ununicode%64))/64));
$splitStr.=
chr(128+($ununicode%64));
}
}
}
}
$splitStr =
str_replace(' ','',$splitStr);
return $splitStr;
}

// UTF-8 문자열 생성
$str =
iconv('euc-kr','utf-8','알쯔\'s 외부기억장치');

echo GetUtf8String($str);
?>
 

출처 : Tong - 드렁크수달스님의 ■ PHP ■통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2955 # 제목을 입력하는 곳 (넓은 사이즈) M 최고의하루 01.03 2937
2954 Editplus v3.0 (문서 편집기) M 최고의하루 01.03 2314
2953 [ JSP ] 브라우저 인코딩이 자동으로 한글이 안되는 경우 해결법 99 단국강토 01.02 2760
2952 [ JS ] 버튼을 이용한 이미지 넘기기 ( 이미지 리스트 ) 99 단국강토 01.02 3579
2951 [AJAX] 자바스크립트에서 XML 파일 읽어 오기 99 단국강토 12.30 2412
2950 [AJAX] DOMDocument 에서 selectSingleNode 을 이용한 XML 노드 (Node) 찾기 99 단국강토 12.30 2530
2949 [ JS , AJAX ] DOM 크로스브라우징 : 원하는 노드 찾기 [ createDocument , DOMDocument ] M 최고의하루 12.26 2561
2948 외부링크 금지하는 방법 M 최고의하루 12.26 2508
2947 오늘 하루 창 열지 않기 M 최고의하루 12.24 2428
2946 DLL화일 레지스트리에 등록 또는 삭제 하기 M 최고의하루 12.24 2221
2945 팝업창 닫고 프레임이 있는 부모창에서 원하는 페이지로 이동하기 M 최고의하루 12.23 3194
2944 [펌] 제11강 - ADO(Active Database Object) - Database Access Component Cobol vs C#-2 M 최고의하루 12.23 2378
2943 [펌] 제11강 - ADO(Active Database Object) - Database Access Component Cobol vs C#-1 M 최고의하루 12.23 3075
2942 [펌] 제12강 - 방명록 만들기 I M 최고의하루 12.23 3056
2941 [펌] 제13강 - 방명록 만들기 II M 최고의하루 12.20 2114
2940 [펌] 제14강 - 방명록 만들기 III M 최고의하루 12.20 2506
2939 [펌] 제15강 - 방명록 만들기 IV M 최고의하루 12.19 2214
2938 [펌] 제16강 - 방명록 만들기 V M 최고의하루 12.19 2107
2937 제17강 - 방명록 만들기 VI M 최고의하루 12.18 2937
2936 [펌] 제18강 - 방명록 만들기 VII M 최고의하루 12.04 2563
2935 아작스관련 코드 링크들 M 최고의하루 12.04 2400
열람중 UTF-8 기준, 한글을 초성,중성,종성으로 분리하기 13 김영철 01.14 3454
2933 APM에서 utf-8 구현 방법 13 김영철 01.14 2977
2932 utf-8 사용시 설정 - db의 입출력을 완벽하게 utf-8 13 김영철 01.14 2266
2931 PHP로 작동하는 RSS 읽는 함수 13 김영철 01.14 2408
2930 EditPlus V2.30 되면서 눈에띄는 달라진점 7가지 13 김영철 01.14 2858
2929 오라클 캐릭터 셋 변경 M 최고의하루 01.12 3037
2928 체크박스 배열을 edit 수정페이지로 불러오기 M 최고의하루 01.12 2505
2927 config 배열. 99 단국강토 01.08 2310
2926 Rewrite 99 단국강토 01.08 2118
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취