한빛가람

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

· 2020-01-26 (일) 14:06:15 · 3300 · 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($munja0);
    /*
    // 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,487
기타 20-01-29 조회 2,630
PHP 20-01-26 조회 3,301
기타 20-01-19 조회 1만
웹서버 20-01-18 조회 3,780
기타 20-01-15 조회 2,627
PHP 20-01-12 조회 4,206
기타 20-01-12 조회 2,680
웹서버 20-01-07 조회 3,525
node.js 20-01-06 조회 2,811
PHP 19-12-19 조회 4,323
기타 19-12-05 조회 2,833
JavaScript 19-12-02 조회 3,095
웹서버 19-11-19 조회 4,935
JavaScript 19-11-05 조회 3,394
JavaScript 19-11-04 조회 2,543
JavaScript 19-11-01 조회 2,654
JavaScript 19-10-31 조회 2,680
PHP 19-10-29 조회 2,730
기타 19-10-26 조회 3,594
JavaScript
[JavaScript]
19-10-17 조회 2,685
JavaScript 19-09-25 조회 2,915
jQuery 19-09-24 조회 2,680
PHP 19-09-23 조회 3,399
기타 19-09-08 조회 3,222
PHP 19-09-03 조회 5,392
기타 19-08-10 조회 2,720
정규표현식 19-08-08 조회 2,972
정규표현식 19-08-05 조회 3,328
웹서버 19-08-05 조회 4,820