사이트 내 전체검색
PHP
0 (/P)
PHP 한글 초,중,종성 분리하기c
하우코드
https://tto.kr/tip_php/961 URL이 복사되었습니다.

본문

출처: 그누보드 - 한글 초,중,종성 분리하기 > 개발자팁 (sir.kr)

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

 

 

 

<?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;

 

 

합치기 : https://dorobo.tistory.com/354

 

댓글목록

등록된 댓글이 없습니다.

PHP
864 (1/35P)

Search

Copyright © 하우코드 44.192.247.184