홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
[함수] UTF - 8 기준, 한글을 초성,중성,종성으로 분리하기
11년 전
<?php
function GetUtf8String($str) {
$arr_cho = array("ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ","ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ","ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ");
$arr_jung = array("ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ","ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ","ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ");
$arr_jong = array("", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ","ㄷ", "ㄹ", "ㄺ", "ㄻ", "ㄼ", "ㄽ", "ㄾ","ㄿ", "ㅀ", "ㅁ", "ㅂ", "ㅄ", "ㅅ", "ㅆ","ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ");

$unicode = array();
$values = array();
$lookingFor = 1;

for ($i=0, $loop=strlen($str);$i<$loop;$i++) {
  $thisValue = ord($str[$i]);

  if ($thisValue < 128) {
  $unicode[] = $thisValue;
  } else {
  if (count($values) == 0) $lookingFor = $thisValue < 224 ? 2 : 3;
  $values[] = $thisValue;

  if (count($values) == $lookingFor) {
    $number = $lookingFor == 3 ? (($values[0]%16)*4096)+(($values[1]%64)*64)+($values[2]%64) : (($values[0]%32)*64)+($values[1]%64);
    $unicode[] = $number;
    $values = array();
    $lookingFor = 1;
  }
  }
}

$splitStr = '';
while (list($key,$code) = each($unicode)) {
  if ($code >= 44032 && $code <= 55203) {
  $temp = $code-44032;

  $cho = (int)($temp/21/28);
  $jung = (int)(($temp%(21*28)/28));
  $jong = (int)($temp%28);

  $splitStr.= $arr_cho[$cho].$arr_jung[$jung].$arr_jong[$jong];
  } else {
  $temp = array($unicode[$key]);

  foreach ($temp as $ununicode) {
    if ($ununicode < 128) {
    $splitStr.= chr($ununicode);
    } elseif ($ununicode < 2048) {
    $splitStr.= chr(192+(($ununicode-($ununicode%64))/64));
    $splitStr.= chr(128+($ununicode%64));
    } else {
    $splitStr.= chr(224+(($ununicode-($ununicode%4096))/4096));
    $splitStr.= chr(128+((($ununicode%4096)-($ununicode%64))/64));
    $splitStr.= chr(128+($ununicode%64));
    }
  }
  }
}
$splitStr = str_replace(' ','',$splitStr);

return $splitStr;
}

// UTF-8 문자열 생성
$str = iconv('euc-kr','utf-8','알쯔\'s 외부기억장치');

echo GetUtf8String($str);
// return ㅇㅏㄹㅉㅡ'sㅇㅚㅂㅜㄱㅣㅇㅓㄱ ㅈㅏㅇㅊㅣ(http://blog.arzz.com)
?>
추천추천 : 433 추천 목록
번호 제목
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.