한빛가람

한글 초,중,종성 분리하기

· 2020-01-26 (일) 14:06:15 · 3326 · 3

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에서 사용하기 위해 참고한 소스코드는 다음 출처에 있습니다.

https://stackoverflow.com/questions/40841149/js-charcodeat-equivalent-in-php-with-full-unicode-and-emoji-compatibility/40867438#40867438

 

 

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에서.
    */
    $jaum = array('ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ');
    $moum = array('ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ');
    $bachim = array('', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅌ', 'ㅍ', 'ㅎ');
 
    /* // 테스트용 문자열
    */
    $munja = "맑";
    
    /* // 한글 이외 다른 문자 제거
    */
    $munja = preg_replace('[^가-힣]', '', $munja);
 
    /*
    // 자바스크립트의 charCodeAt 구현 코드.
    */
    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개

2020-05-21 (목) 17:30:38
좋은정보 감사합니다 !!
2020-06-24 (수) 11:01:06
좋은정보네요!
혹시 합치는것도 만드실수 있으실까요?
https://dorobo.tistory.com/354 존재하긴하네요!
베이식 코드지만요
댓글을 작성하시려면 로그인이 필요합니다.

개발자팁

5,403건

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
JavaScript 22-05-26 조회 2,380
기타 22-05-25 조회 2,002
기타 22-05-24 조회 2,216
기타 22-05-22 조회 2,050
웹서버 22-05-17 조회 2,939
PHP 22-05-11 조회 1,977
PHP 22-05-09 조회 2,741
PHP 22-05-06 조회 2,251
JavaScript 22-05-06 조회 2,851
JavaScript 22-04-14 조회 2,882
기타 22-04-07 조회 2,084
JavaScript 22-03-15 조회 2,730
기타 22-03-10 조회 2,080
기타 22-03-08 조회 3,273
웹서버 22-02-28 조회 4,143
JavaScript 22-02-24 조회 2,855
기타 22-02-17 조회 2,375
웹서버 22-02-16 조회 2,458
node.js 22-02-07 조회 2,346
JavaScript 22-01-30 조회 2,178
웹서버 22-01-27 조회 4,099
JavaScript 22-01-20 조회 4,905
JavaScript 22-01-20 조회 2,880
JavaScript 22-01-05 조회 3,304
기타 22-01-05 조회 3,715
OS 22-01-05 조회 2,439
웹서버 21-12-16 조회 2,579
기타 21-12-14 조회 2,375
기타 21-12-13 조회 2,397
기타
[기타]
21-11-29 조회 3,107