728x90
반응형
strlen 함수
PHP 함수인 strlen 함수에 대해 php.net 에서는 아래와 같이 설명하고 있습니다.
문자열 길이를 얻습니다.
그렇지만, 해당 함수는 영문 문자열이 몇 바이트(Byte)인지를 가져오는 함수입니다.
영문은 1 Byte로 계산하지만,
UTF-8 문서에 경우 각 문자를 1~4Byte까지 사용하므로, 한글은 한 글자당 1~4Byte에 길이가 반환되어 정확한 문자열의 길이를 알 수 없습니다.
그렇기 때문에 우리는 이를 해결 할 수 있는 함수인 mb_strlen 에 대해서도 함께 알아보겠습니다.
mb_strlen 함수
문자열 길이를 얻습니다.
그러면 무엇이 틀린 걸까요?
그건 바로 사용하는 인수 값이 틀립니다.
strlen은 문자열 하나만을 인수로 사용하지만,
mb_strlen은 문자열과 현재 파일의 인코딩(= 문자셋 혹은 charset )을 인수로 사용합니다.
mb_strlen 함수를 이용하면 한글 문자열 길이도 문제없이 가져올 수 있습니다.
▶사용법
강조 처리된 부분만 필수 입력 사항입니다.
strlen( 문자열 )
mb_strlen( 문자열 , 인코딩 = mb_internal_encoding() )
* 인코딩 : 값을 입력하지 않으면, 기본 문자 인코딩에서 사용되는 문자 인코딩을 가져옵니다. [참고 ]
▶strlen 함수 예제
코드
1 2 3 4 | <?php echo "영어 : " . strlen ( "Edward" ). '<br/>' ; echo "한글 : " . strlen ( "반갑수" ); ?> |
결과
▶mb_strlen 함수 예제
파일 인코딩이 UTF-8인 경우에 대한 예제입니다. (다른 인코딩이면 어딜 변경해야할지 아실거라 생각합니다.)
코드
1 2 3 4 | <?php echo "영어 : " . mb_strlen( "Edward" , "UTF-8" ). '<br/>' ; echo "한글 : " . mb_strlen( "반갑수" , "UTF-8" ); ?> |
결과
출처: http://extbrain.tistory.com/entry/PHP-문자열-길이-가져오기-strlen-mbstrlen-함수 [확장형 뇌 저장소]
728x90
반응형
'Web Programming > php' 카테고리의 다른 글
php $_GET $_POST (0) | 2018.09.05 |
---|---|
php new line to br nl2br() (0) | 2018.09.05 |
php data types (0) | 2018.09.04 |
php include, require (0) | 2018.09.03 |
php 배열 (0) | 2018.09.03 |