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

PHP substr_count() 함수 완벽 가이드 – 문자열 내 부분 문자열 개수 세기

PHP의 substr_count() 함수는 하나의 문자열 안에서 특정 부분 문자열(서브스트링)이 몇 번 등장하는지 그 횟수를 세는 데 사용됩니다.

문법(Syntax)

substr_count(str, substr, begin, len)

매개변수(Parameters)

  • str − 검사 대상이 되는 원본 문자열입니다.

  • substr − 문자열 안에서 찾고자 하는 부분 문자열입니다.

  • begin − 검색을 시작할 위치(오프셋)를 지정합니다. 선택 사항이며 기본값은 0, 즉 문자열 처음부터 검색합니다.

  • len − 검색 범위의 길이를 지정합니다. 선택 사항으로, begin 위치부터 len만큼의 구간 안에서만 부분 문자열을 셉니다.

반환 값(Return)

substr_count() 함수는 지정한 문자열 내에서 부분 문자열이 나타난 횟수를 정수(int)로 반환합니다. 부분 문자열이 한 번도 발견되지 않으면 0을 반환합니다.

예제(Example)

다음은 substr_count() 함수의 기본적인 사용 예시입니다 −

<?php
   $str = 'This is our example!';
   echo strlen($str);
   echo "\n";
   echo substr_count($str, 'our');
?>

출력 결과(Output)

20
1

위 예제에서 strlen($str)은 문자열 전체 길이인 20을 출력하고, substr_count($str, 'our')는 문자열에 포함된 'our'라는 부분 문자열의 개수인 1을 반환합니다.

begin과 len 매개변수 활용하기

세 번째와 네 번째 매개변수를 사용하면 검색 범위를 제한할 수 있습니다.

<?php
   $str = 'Hello World Hello';
   echo substr_count($str, 'Hello', 6); // 6번째 위치 이후부터 검색 → 1
?>

위 코드는 6번째 오프셋부터 문자열 끝까지만 검사하므로 뒤쪽의 'Hello' 한 번만 카운트하여 1을 반환합니다.

주의 사항

  • substr_count() 함수는 대소문자를 구분합니다. 따라서 'Hello'를 찾을 때 'hello'는 매칭되지 않습니다.

  • 겹치는(overlapping) 부분 문자열은 중복 계산되지 않습니다. 예를 들어 substr_count('aaaa', 'aa')의 결과는 3이 아닌 2입니다.

  • begin과 len을 더한 값이 문자열 길이를 초과하면 PHP 8.0부터는 ValueError가 발생하고, 그 이전 버전에서는 경고와 함께 false를 반환합니다.