mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Sunday, April 29, 2007

PHP 예제] 문자열 길이, 한글 글자 수 구하기 함수; CJK String Length


strlen() 함수로, 문자열의 길이를 구할 수 있는데, 실은, "영문 문자열이 몇 바이트로 이루어져 있는지"를 구합니다.

알파벳 1글자는 1바이트이기에, 영문 문자열은 strlen() 함수로 정확한 길이를 구할 수 있지만,

한글은 1글자가 2바이트이기에 문제가 생깁니다. strlen() 함수는 한글 1글자를 2글자로 간주합니다.

따라서 한글 문자열의 정확한 글자 수를 구하려면, mb_strlen() 함수를 사용해야 합니다. 그런데 이 함수는 현재 PHP 5 버전에서는, PHP의 환경 설정에서 "멀티 바이트 모듈"을 로딩해 주어야 사용할 수 있습니다. 참고: ▶▶ 윈도우용 PHP, mbstring 익스텐션(Extension;모듈) 설치/인식 방법

strlen, mb_strlen: 영문/한글 문자열 사이즈 얻기


소스 파일명: example.php
<html>
<head>
<title>PHP Example</title>
</head>

<body>

<?php

  // strlen() 함수는, 문자열의 길이를 바이트 단위로 반환합니다.
  // 즉, 한글은 2바이트, 영문이나 기호는 1바이트로 출력
  print strlen("Cool") . "글자 (영문 바이트 단위)<br />\n";
  // 4글자 (영문 바이트 단위)


  // 공백이나 기호도 1글자
  print strlen("Cool Boy!") . "글자 (영문 바이트 단위)<br />\n";
  // 9글자 (영문 바이트 단위)


  // 한글 1자는 2글자로 간주
  print strlen("똠방각하") . "글자 (영문 바이트 단위)\n";
  // 8글자 (영문 바이트 단위)



  // 한글 글자수 정확히 구하기
  // 인코딩을 "EUC-KR" 로 지정하면 똠방각하 등에서 문제 발생.
  // 확장 완성형인 "CP949"를 지정해야 함
  print mb_strlen("똠방각", "CP949") . "글자 (한글 1자를 1자로 인식)<br />\n";
  // 3글자 (한글 1자를 1자로 인식)

?>

</body>
</html>




유니코드(UTF-8) 한글 문자열의 글자 수 구하는 법: ▶▶ PHP 예제] 유니코드(UTF-8) 한글 문자열 크기/글자 수 구하기; Unicode String Size

▶▶ PHP 예제] 배열 크기, 사이즈 구하기 함수, 배열 요소 개수; Array Size Function




tag: php
PHP

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top