PHP의 strpos() 함수는 하나의 문자열 안에서 다른 문자열이 처음 등장하는 위치를 찾을 때 사용하는 함수입니다. 문자열 검색, 키워드 존재 여부 확인 등 다양한 상황에서 활용되며, PHP 문자열 처리의 기본기 중 하나로 꼽힙니다.
기본 문법
strpos(str, find, begin)
매개변수 설명
str − 검색 대상이 되는 원본 문자열입니다.
find − 원본 문자열 안에서 찾고자 하는 문자열입니다.
begin − 검색을 시작할 위치(오프셋)입니다. 선택 사항이며, 기본값은 0(문자열의 처음)입니다.
반환값
strpos() 함수는 지정한 문자열이 처음으로 나타나는 위치(인덱스)를 숫자로 반환합니다. 만약 해당 문자열을 찾지 못하면 false를 반환합니다.
⚠️ 주의: 위치가 0일 경우(찾는 문자열이 맨 앞에 있는 경우) 느슨한 비교(==)로는 false와 혼동될 수 있습니다. 따라서 존재 여부를 확인할 때는 반드시 일치 연산자(=== 또는 !==)를 사용해야 합니다.
예제 1: 기본 사용법
다음은 문자열에서 "demo"라는 단어가 처음 나타나는 위치를 구하는 예제입니다.
<?php
echo strpos("This is demo text !", "demo");
?>
실행 결과
8
"This is demo text !"라는 문자열에서 "demo"는 인덱스 8번째 자리부터 시작하므로 결과는 8이 출력됩니다.
예제 2: 검색 시작 위치(begin) 활용하기
세 번째 매개변수를 사용하면 검색을 원하는 지점부터 시작할 수 있습니다.
<?php
$str = 'pqr pqr';
$pos = strpos($str, 'p', 1);
echo $pos;
?>
실행 결과
4
"pqr pqr"이라는 문자열에서 인덱스 1부터 검색을 시작했기 때문에, 첫 번째 "p"(인덱스 0)는 건너뛰고 두 번째 "p"의 위치인 4가 반환됩니다.
정리
strpos()는 문자열 내 특정 문자열의 첫 등장 위치를 반환합니다.문자열을 찾지 못하면
false를 반환합니다.반환값
0과false를 구분하기 위해===비교 연산자를 사용하는 것이 안전합니다.대소문자를 구분하지 않고 검색하려면
stripos()함수를 사용하세요.