한글 초,중,종성 분리하기
1년 2개월 전에 깃허브에 올려둔 자료입니다.
의외로 필요한 분들이 많을까 올려드립니다.
원본 코드(js판) 출처는 명신님의 블로그(IT 소시민의 소소한 이야기) - http://dream.ahboom.net/entry/%ED%95%9C%EA%B8%80-%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-%EC%9E%90%EC%86%8C-%EB%B6%84%EB%A6%AC-%EB%B0%A9%EB%B2%95 입니다.
js의 charCodeAt를 PHP에서 사용하기 위해 참고한 소스코드는 다음 출처에 있습니다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<?php
/* 자바스크립트 한글 자모 분리를 PHP에서.
// http://dream.ahboom.net/entry/%ED%95%9C%EA%B8%80-%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-%EC%9E%90%EC%86%8C-%EB%B6%84%EB%A6%AC-%EB%B0%A9%EB%B2%95
*/
$jaum = array('ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ');
$moum = array('ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ');
$bachim = array('', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅌ', 'ㅍ', 'ㅎ');
/* // 테스트용 문자열
*/
$munja = "맑";
/* // 한글 이외 다른 문자 제거
*/
$munja = preg_replace('[^가-힣]', '', $munja);
/*
// 자바스크립트의 charCodeAt 구현 코드.
// https://stackoverflow.com/questions/40841149/js-charcodeat-equivalent-in-php-with-full-unicode-and-emoji-compatibility/40867438#40867438
*/
function JS_charCodeAt($str, $index) {
$utf16 = mb_convert_encoding($str, 'UTF-16LE', 'UTF-8');
return ord($utf16[$index*2]) + (ord($utf16[$index*2+1]) << 8);
}
$munjaCode = JS_charCodeAt($munja, 0);
/*
// 0xAC00 => 한글 첫 글자인 '가'
*/
$munjaBeonho = $munjaCode - 0xAC00;
$jong = $munjaBeonho % 28;
$jung = (($munjaBeonho - $jong) / 28) % 21;
$cho = ((($munjaBeonho - $jong) / 28) - $jung) / 21;
echo "Cho = {$jaum[$cho]}".PHP_EOL;
echo "Jung = {$moum[$jung]}".PHP_EOL;
echo "Jong = {$bachim[$jong]}".PHP_EOL;
|
cs |
$munja 부분에 원하는 단어를 넣으시면 됩니다.
예시) 강아지 => ㄱㅏㅇㅇㅏㅈㅣ
댓글 3개
뉴욕쌍화차
5년 전
좋은정보 감사합니다 !!
5년 전
좋은정보네요!
혹시 합치는것도 만드실수 있으실까요?
혹시 합치는것도 만드실수 있으실까요?
5년 전
https://dorobo.tistory.com/354 존재하긴하네요!
베이식 코드지만요
베이식 코드지만요
게시판 목록
개발자팁
개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5006 | 기타 | 5년 전 | 1922 | ||
| 5005 | 기타 | 5년 전 | 2021 | ||
| 5004 | 기타 | 5년 전 | 2137 | ||
| 5003 | 기타 | 5년 전 | 2813 | ||
| 5002 | 기타 | 5년 전 | 2388 | ||
| 5001 | 기타 | 5년 전 | 2725 | ||
| 5000 | 기타 | 5년 전 | 4768 | ||
| 4999 | 기타 | 5년 전 | 2031 | ||
| 4998 | 기타 | 5년 전 | 2695 | ||
| 4997 | 기타 | 5년 전 | 2744 | ||
| 4996 | 기타 | 5년 전 | 2667 | ||
| 4995 | 기타 | 5년 전 | 2912 | ||
| 4994 | 기타 | 5년 전 | 2166 | ||
| 4993 | 기타 | 5년 전 | 2041 | ||
| 4992 | 기타 | 5년 전 | 1968 | ||
| 4991 | 기타 | 5년 전 | 1985 | ||
| 4990 | 기타 | 5년 전 | 2044 | ||
| 4989 | 기타 | 5년 전 | 2365 | ||
| 4988 | 기타 | 5년 전 | 2055 | ||
| 4987 | 기타 | 5년 전 | 2331 | ||
| 4986 | 기타 | 5년 전 | 2800 | ||
| 4985 | 웹서버 | 5년 전 | 4947 | ||
| 4984 | OS | 5년 전 | 3009 | ||
| 4983 | MySQL | 5년 전 | 2895 | ||
| 4982 | 기타 | 5년 전 | 2015 | ||
| 4981 | PHP | 5년 전 | 2658 | ||
| 4980 | 기타 | 5년 전 | 8978 | ||
| 4979 | 웹서버 | 5년 전 | 3080 | ||
| 4978 | 기타 | 5년 전 | 2052 | ||
| 4977 | PHP | 5년 전 | 3516 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기