Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP iconv_strlen() 함수로 문자열의 글자 수를 구하는 방법

PHP에서 iconv_strlen() 함수는 주어진 문자열에 포함된 문자(글자) 수를 반환하는 데 사용됩니다. 이 함수는 PHP에 내장된 함수로, PHP 5 버전부터 도입되었으며, PHP 8.0부터는 인코딩 매개변수에 null을 허용합니다.

멀티바이트 문자(한글, 일본어, 중국어 등)를 다룰 때 단순히 strlen()을 사용하면 바이트 수가 반환되어 실제 글자 수와 다르게 나올 수 있습니다. 이런 경우 iconv_strlen()을 사용하면 인코딩을 기준으로 정확한 문자 개수를 얻을 수 있습니다.

문법

iconv_strlen(string $string, ?string $encoding = null): int|false

매개변수

이 함수는 두 개의 매개변수를 받습니다.

  • $string — 글자 수를 세고자 하는 입력 문자열입니다.
  • $encoding — 문자열의 문자셋(인코딩)을 지정합니다. 이 매개변수를 생략하거나 null로 지정하면 iconv.internal_encoding 설정값이 기본값으로 사용됩니다.

반환 값

iconv_strlen() 함수는 주어진 문자열에 포함된 문자의 개수를 정수(int) 형태로 반환합니다. 만약 인코딩 처리 중 오류가 발생하면 false를 반환합니다.

예제

<?php
    // UTF-8 인코딩의 문자열
    $integer = iconv_strlen("hello world!", "UTF-8");

    // 문자열의 글자 수를 출력합니다.
    var_dump($integer);
?>

실행 결과

int(12)

위 예제에서 "hello world!" 문자열은 공백과 느낌표를 포함해 총 12개의 문자로 이루어져 있으므로 결과값이 int(12)로 출력됩니다.

참고: 한글 문자열 예제

<?php
    $str = "안녕하세요";
    echo iconv_strlen($str, "UTF-8"); // 출력: 5
    echo strlen($str); // 출력: 15 (바이트 수)
?>

한글은 UTF-8에서 한 글자당 3바이트를 차지하기 때문에 strlen()은 15를 반환하지만, iconv_strlen()은 실제 글자 수인 5를 정확하게 반환합니다. 따라서 다국어 환경에서 문자열 길이를 계산할 때는 iconv_strlen() 사용을 권장합니다.