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

PHP mb_stripos() 함수 – 대소문자 구분 없이 문자열 위치 찾기

PHP의 mb_stripos() 함수는 하나의 문자열(대상 문자열) 안에서 다른 문자열이 처음 나타나는 위치를 찾는 데 사용되는 멀티바이트 문자열 함수입니다. 이 함수의 가장 큰 특징은 대소문자를 구분하지 않는다(case-insensitive)는 점입니다.

mb_stripos()는 주어진 대상 문자열(haystack)에서 찾을 문자열(needle)이 처음 등장하는 숫자 위치를 반환하며, 해당 문자열을 찾지 못하면 False를 반환합니다.

문법(Syntax)

integer mb_stripos($str_haystack, $str_needle, $int_offset = 0, $str_encoding = empty)

매개변수(Parameters)

mb_stripos() 함수는 다음 네 가지 매개변수를 받습니다.

  • $str_haystack − 찾을 문자열(needle)이 처음 나타나는 위치를 검색할 대상 문자열입니다.

  • $str_needle − 대상 문자열(haystack) 안에서 찾고자 하는 문자열입니다.

  • $int_offset − 검색을 시작할 위치(오프셋)입니다. 기본값은 0이며, 음수 값을 지정하면 문자열의 끝에서부터 역산하여 검색을 시작합니다.

  • $str_encoding − 사용할 문자 인코딩 이름입니다. 이 매개변수를 생략하면 PHP의 내부 문자 인코딩(internal character encoding)이 사용됩니다.

반환 값(Return Values)

이 함수는 대상 문자열에서 찾을 문자열이 처음 나타나는 숫자 위치를 반환합니다. 만약 찾을 문자열이 존재하지 않으면 False를 반환합니다.

예제 1

<?php
mb_internal_encoding("UTF-8");

// "PHP Tutorials" 문자열에서 "ia" 검색
// offset = 0
$string = mb_stripos("PHP Tutorials", "ia", 0);

// 출력 결과는 int(9)
var_dump($string);
?>

출력 결과

int(9)

예제 설명

위 예제에서는 먼저 mb_internal_encoding() 함수로 내부 인코딩을 UTF-8로 설정했습니다. 그런 다음 "PHP Tutorials"라는 문자열에서 오프셋 0부터 "ia"를 대소문자 구분 없이 검색합니다. "Tutorials"의 "ia"가 9번째 위치(0부터 시작)에 있으므로 결과는 int(9)가 됩니다.

만약 검색어가 존재하지 않는다면 다음과 같이 bool(false)가 반환됩니다.

<?php
var_dump(mb_stripos("PHP Tutorials", "xyz"));
?>
bool(false)

참고: mb_stripos()는 한글, 일본어, 중국어 등 멀티바이트 문자열에서도 정확하게 동작하므로, 영어가 아닌 다국어 환경에서 문자열 위치를 찾을 때 유용하게 활용할 수 있습니다.