한글을 자음 모음까지 분리하는 방법이 있나요?

한글을 자음 모음까지 분리하는 방법이 있나요?

QA

한글을 자음 모음까지 분리하는 방법이 있나요?

답변 1

본문

제목 그대로 자음 모음까지 분리하는 방법이 있을까요??

 

끝말잇기를 만들고 있는데 두음법칙을 적용시키려고하니 분리시켜야 될거 같아서요..

 

고딩때 국어를 못해서 다시 두음법칙을 공부중입니다 ㅠ

이 질문에 댓글 쓰기 :

답변 1

 

초, 중, 종성을 분리

 


function utf8_strlen($str) { return mb_strlen($str, 'UTF-8'); }
function utf8_charAt($str, $num) { return mb_substr($str, $num, 1, 'UTF-8'); }
function utf8_ord($ch) {
  $len = strlen($ch);
  if($len <= 0) return false;
  $h = ord($ch{0});
  if ($h <= 0x7F) return $h;
  if ($h < 0xC2) return false;
  if ($h <= 0xDF && $len>1) return ($h & 0x1F) <<  6 | (ord($ch{1}) & 0x3F);
  if ($h <= 0xEF && $len>2) return ($h & 0x0F) << 12 | (ord($ch{1}) & 0x3F) << 6 | (ord($ch{2}) & 0x3F);          
  if ($h <= 0xF4 && $len>3) return ($h & 0x0F) << 18 | (ord($ch{1}) & 0x3F) << 12 | (ord($ch{2}) & 0x3F) << 6 | (ord($ch{3}) & 0x3F);
  return false;
}
function hangul_separa($str) {
  $cho = array("ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"); // 초성
  $jung = array("ㅏ","ㅐ","ㅑ","ㅒ","ㅓ","ㅔ","ㅕ","ㅖ","ㅗ","ㅘ","ㅙ","ㅚ","ㅛ","ㅜ","ㅝ","ㅞ","ㅟ","ㅠ","ㅡ","ㅢ","ㅣ"); // 중성
  $jong = array("","ㄱ","ㄲ","ㄳ","ㄴ","ㄵ","ㄶ","ㄷ","ㄹ","ㄺ","ㄻ","ㄼ","ㄽ","ㄾ","ㄿ","ㅀ","ㅁ","ㅂ","ㅄ","ㅅ","ㅆ","ㅇ","ㅈ","ㅊ","ㅋ"," ㅌ","ㅍ","ㅎ"); // 종성
  $result = "";
  for ($i=0; $i<utf8_strlen($str); $i++) {
    $code = utf8_ord(utf8_charAt($str, $i)) - 44032;
    if ($code > -1 && $code < 11172) {        
      $cho_idx = $code / 588;      
      $jung_idx = $code % 588 / 28;  
      $jong_idx = $code % 28;
      $result .= $cho[$cho_idx].$jung[$jung_idx].$jong[$jong_idx];
    } else {
       $result .= utf8_charAt($str, $i);
    }
  }
  return $result;
}
echo hangul_separa("초성 중성 종성 분리");
// => ㅊㅗㅅㅓㅇ ㅈㅜㅇㅅㅓㅇ ㅈㅗㅇㅅㅓㅇ ㅂㅜㄴㄹㅣ
 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 62
© SIRSOFT
현재 페이지 제일 처음으로