sitelink1 http://mwultong.blogspot.com/2007/04/php...-size.html 
sitelink2  
extra_vars5  
extra_vars6  

php 소스 파일이 "유니코드(UTF-8)" 인코딩으로 되어 있을 경우, 한글 문자열의 정확한 글자 수를 구하는 방법입니다.

"유니코드(UTF-8)" 인코딩에서, 한글 1글자는 3바이트입니다. 다만, 영문이나 공백문자나 기호 등은 여전히 1바이트입니다.

따라서 그냥 strlen() 함수로, 한글 글자 수를 구하면, 글자 수가 아니라, 바이트 수만 나옵니다.

이때는
mb_strlen("한글문자열", "UTF-8")
이런 함수를 사용하면, 정확한 글자 수를 구할 수 있습니다. 그런데 이 함수는 2바이트 문자열을 다루는 외부 모듈을 로딩해 주어야 사용할 수 있습니다. 참고: ▶▶ 윈도우용 PHP, mbstring 익스텐션(Extension;모듈) 설치/인식 방법
 

Unicode (UTF-8) 인코딩에서 한글 글자수 출력


파일명: example.php
(이 예제 소스는, 유니코드(UTF-8) 인코딩으로 저장해야 합니다.)

<html>
<head>
<title>PHP Example</title>
</head>

<body>

<?php

  // strlen() 함수는, 유니코드(UTF-8) 인코딩에서
  // 한글은 3바이트, 영문이나 기호는 1바이트로 반환
  print strlen("Cool") . "글자 (영문 바이트 단위)<br />\n";
  // 4글자 (영문 바이트 단위)


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


  // 유니코드(UTF-8) 한글 글자수 정확히 구하기
  print mb_strlen("똠방각", "UTF-8") . "글자 (한글 1자를 1자로 인식)<br />\n";
  // 3글자 (한글 1자를 1자로 인식)

?>

</body>
</html>



위의 소스를 도스창(콘솔)에서 직접 실행하면 유니코드 문자가 깨져서 이상한 글자가 나올 것입니다.

php example.php > out.html
이렇게 직접 out.html 이라는 파일로 저장하면, out.html 파일 안에
 

<html>
<head>
<title>PHP Example</title>
</head>

<body>

4글자 (영문 바이트 단위)<br />
12글자 (영문 바이트 단위)<br />
3글자 (한글 1자를 1자로 인식)<br />

</body>
</html>


이런 출력 결과가 들어 있을 것입니다.




유니코드가 아닌, 일반적인 "확장완성형(EUC-KR / CP949)"에서: ▶▶ PHP 예제] 문자열 길이, 한글 글자 수 구하기 함수; CJK String Length

번호 제목 글쓴이 날짜 조회 수
22 eval(base64_decode 해킹 황제낙엽 2019.07.24 329
21 Fatal error: Maximum execution time of 30 seconds exceeded in 황제낙엽 2019.07.04 134
20 PHP Fatal error: Allowed memory size file 황제낙엽 2019.07.04 47
19 PHP Fatal error: Uncaught Error: Call to undefined function finfo_open() 황제낙엽 2019.06.20 84
18 Content-Disposition, 한글 filename 황제낙엽 2019.04.16 70
» PHP 예제] 유니코드(UTF-8) 한글 문자열 크기/글자 수 구하기; Unicode String Size 황제낙엽 2017.02.03 285
16 PHP 예제] 문자열 길이, 한글 글자 수 구하기 함수; CJK String Length 황제낙엽 2017.02.03 363
15 윈도우용 PHP, mbstring 익스텐션(Extension;모듈) 설치/인식 방법 황제낙엽 2017.02.03 86
14 Warning: session_start(): Cannot send session cache limiter - headers already sent 황제낙엽 2008.10.24 190
13 fsockopen 으로 웹서버 온라인 오프라인 상태체크하기 황제낙엽 2008.10.02 73
12 fsockopen() 사용예제 (원격서버의 파일을 읽어온다) 황제낙엽 2008.10.02 228
11 fsockopen() 사용하여 웹페이지 긁어오기 황제낙엽 2007.09.19 392
10 cURL (Client URL Library Functions) 황제낙엽 2007.09.18 146
9 PHP $_SERVER[] 함수 황제낙엽 2007.05.12 63
8 [함수] 알면 이로운 피체피의 환경변수들.... 황제낙엽 2007.05.04 105
7 Mysql 실행 환경변수 검사 페이지 file 황제낙엽 2007.04.04 523
6 Mysql 한글데이터 깨짐 현상 황제낙엽 2007.02.05 214
5 문자열 처리 함수 황제낙엽 2006.01.18 236
4 PHP로 FILE I/O 하기 황제낙엽 2005.12.12 89
3 세션 사용하기 황제낙엽 2006.09.10 186