카테고리 없음
PHP 문자열 길이 가져오기 (strlen, mb_strlen 함수)
광82
2023. 7. 11. 21:34
반응형
설명
strlen 함수
PHP 함수인 strlen 함수에 대해 php.net 에서는 아래와 같이 설명하고 있습니다.
문자열 길이를 얻습니다.
그렇지만, 해당 함수는 영문 문자열이 몇 바이트(Byte)인지를 가져오는 함수입니다.
영문은 1 Byte로 계산하지만,
UTF-8 문서에 경우 각 문자를 1~4Byte까지 사용하므로, 한글은 한 글자당 1~4Byte에 길이가 반환되어 정확한 문자열의 길이를 알 수 없습니다.
mb_strlen 함수
문자열 길이를 얻습니다.
그러면 무엇이 틀린 걸까요?
그건 바로 사용하는 인수 값이 틀립니다.
strlen은 문자열 하나만을 인수로 사용하지만,
mb_strlen은 문자열과 현재 파일의 인코딩(= 문자셋 혹은 charset )을 인수로 사용합니다.
mb_strlen 함수를 이용하면 한글 문자열 길이도 문제없이 가져올 수 있습니다.
▶사용법
강조 처리된 부분만 필수 입력 사항입니다.
strlen( 문자열 )
mb_strlen( 문자열 , 인코딩 = mb_internal_encoding() )
* 인코딩 : 값을 입력하지 않으면, 기본 문자 인코딩에서 사용되는 문자 인코딩을 가져옵니다. [참고 ]
▶strlen 함수 예제
코드
<?php
echo "영어 : ". strlen("Edward").'<br/>';
echo "한글 : ". strlen("반갑수");
?>
결과
영어 : 6
한글 : 9
▶mb_strlen 함수 예제
파일 인코딩이 UTF-8인 경우에 대한 예제입니다. (다른 인코딩이면 어딜 변경해야할지 아실거라 생각합니다.)
코드
<?php
echo "영어 : ". mb_strlen("Edward", "UTF-8").'<br/>';
echo "한글 : ". mb_strlen("반갑수", "UTF-8");
?>
결과
영어 : 6
한글 : 3
반응형