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;모듈) 설치/인식 방법
소스 파일명: example.php
유니코드(UTF-8) 한글 문자열의 글자 수 구하는 법: ▶▶ PHP 예제] 유니코드(UTF-8) 한글 문자열 크기/글자 수 구하기; Unicode String Size
▶▶ PHP 예제] 배열 크기, 사이즈 구하기 함수, 배열 요소 개수; Array Size Function
알파벳 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>
<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
<< Home