강좌
클라우드/리눅스에 관한 강좌입니다.
기타 분류

[PHP] 글자수 byte계산시 한글은 2byte 영문은 1byte 계산하기

작성자 정보

  • 캘리포니아 작성
  • 작성일

컨텐츠 정보

본문

안녕하세요.

php에서 글자 byte수 확인이 필요할 경우


보통 한글은 strlen()함수를 사용할 경우 `한`글자당 3byte로 계산이 됩니다.


하지만 우리가 원하는건 `한`글자당 2byte를 원하는데요.


예제를 보면


$str = '가나다라마';

echo strlen($str); //15

echo"<br>--------<br>";

echo mb_strlen($str, 'EUC-KR'); //9

echo"<br>";

echo mb_strlen($str, 'UTF-8'); //5

echo"<br>";

echo mb_strwidth($str, 'UTF-8'); //10

echo"<br>";

$str="abcde";

echo mb_strwidth($str, 'UTF-8'); //5


mb_strlen은 `가나다` 까지는 6byte로 정확하게 출력하는듯 하지만  

`가나다라마` 에서 10byte가 아닌 9byte를 출력하여 원하는 값을 얻을 수 없습니다.


결론은


mb_strwidth가 2byte씩 정확한 값을 얻을 수 있습니다.


이상입니다.



관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 전체 회원수 59,499 명
  • 전체 게시물 31,134 개
  • 전체 댓글수 11,895 개