한빛가람

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

· 2020-01-26 (일) 14:06:15 · 3327 · 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에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
MySQL 20-02-13 조회 3,502
기타 20-01-29 조회 2,655
PHP 20-01-26 조회 3,328
기타 20-01-19 조회 1만
웹서버 20-01-18 조회 3,804
기타 20-01-15 조회 2,661
PHP 20-01-12 조회 4,246
기타 20-01-12 조회 2,695
웹서버 20-01-07 조회 3,543
node.js 20-01-06 조회 2,831
PHP 19-12-19 조회 4,335
기타 19-12-05 조회 2,841
JavaScript 19-12-02 조회 3,115
웹서버 19-11-19 조회 4,977
JavaScript 19-11-05 조회 3,415
JavaScript 19-11-04 조회 2,569
JavaScript 19-11-01 조회 2,679
JavaScript 19-10-31 조회 2,721
PHP 19-10-29 조회 2,749
기타 19-10-26 조회 3,621
JavaScript
[JavaScript]
19-10-17 조회 2,715
JavaScript 19-09-25 조회 2,945
jQuery 19-09-24 조회 2,706
PHP 19-09-23 조회 3,447
기타 19-09-08 조회 3,248
PHP 19-09-03 조회 5,429
기타 19-08-10 조회 2,745
정규표현식 19-08-08 조회 3,002
정규표현식 19-08-05 조회 3,352
웹서버 19-08-05 조회 4,834