stripos()
함수 사용법
stripos()
함수는
문자열에서 특정 문자열의 위치를 찾는 함수입니다.
대상 문자열에서 주어진 문자열이 처음 나타나는 위치(인덱스)를 반환합니다. 주어진 문자열이 포함되어 있지 않으면 false
를 반환합니다.
대소문자를 구분하지 않습니다.
$str = 'Hello, World!';
$substring = 'world'; // 대소문자를 구분하지 않음
$pos = stripos($str, $substring);
if ($pos !== false) {
echo "찾은 위치: $pos";
} else {
echo '찾을 수 없습니다.';
}
// 출력: 찾은 위치: 7
/*
* 주의하세요!
* 문자열에서 인덱스는 0부터 시작합니다.
* 첫 번째 문자열의 인덱스는 0이고, 두 번째 문자열의 인덱스는 1입니다.
*/
유용한 팁
stripos()
함수는 대소문자를 구분하지 않고 문자열에 특정 문자가 포함되어 있는지를 확인하는데 매우 유용합니다.
- 한글과 같은 multi-byte 문자열에서는
mb_stripos()
함수를 사용하세요. - 만약 대소문자를 구분해서 문자열에서 특정 문자열의 위치를 찾고자 한다면
strpos()
함수를 사용하세요.
stripos()
함수의 형식은 다음과 같습니다.
구문
stripos(string $haystack, string $needle, int $offset = 0): int|false
매개변수
$haystack |
검색 대상이 되는 문자열입니다. |
---|---|
$needle |
검색할 문자열입니다.
대소문자를 구분하지 않습니다. |
$offset |
옵션. 검색을 시작할 0 기반의 인덱스입니다.
|
반환 값
대상 문자열에서 주어진 문자열($needle
)이 처음 나타나는 위치(인덱스)를 반환합니다.
문자열 위치는 1
이 아닌 0
부터 시작한다는 점에 유의하세요.
- 주어진 문자열(
$needle
)이 포함되어 있지 않으면false
를 반환합니다. - 주어진 문자열(
$needle
)이 빈 문자열(''
)일 경우false
를 반환합니다.
주의하세요!
stripos()
함수와 달리 strpos()
함수는 PHP 8 이전의 버전에서 주어진 문자열($needle
)이 빈 문자열(''
)일 경우 Warning 에러가 발생합니다.
$haystack = 'Hello, World!';
var_dump(stripos($haystack, '')); // bool(false)
var_dump(strpos($haystack, '')); // Warning: strpos(): Empty needle in
주의할 점
문자열에서 인덱스는 0부터 시작합니다.
첫 번째 문자열의 인덱스는 0이고, 두 번째 문자열의 인덱스는 1입니다.
$newstring = 'abcdef ghijk';
$pos = stripos($newstring, 'a');
var_dump($pos); // int(0)
이 함수를 Boolean
타입으로 반환 값을 사용할 때에는 주의가 필요합니다.
이 함수의 반환 값을 테스트하려면 ===
연산자를 사용하세요 .
stripos()
함수는 반환 값으로 대상 문자열에서 주어진 문자열이 처음 나타나는 위치(인덱스)를 반환합니다. 문자열 위치는 1
이 아닌 0
부터 시작한다는 점에 유의해야 합니다.
대상 문자열에서 주어진 문자열의 위치가 첫 번째에 위치하고 있다고 가정해 보겠습니다.
이 경우 반환 값은 0
이 됩니다.
0
은 ==
연산자로 변환하면 false
를 반환하게 됩니다.
실제 주어진 문자열이 존재하지만 false
를 반환하기 때문에 부울(boolean) 타입으로 반환 값을 테스트하려면 엄격한 타입 비교가 수행되어 하기 때문에 ===
연산자를 사용해야 합니다.
Boolean
타입으로 반환 값을 사용할 때에는 ===
연산자를 사용하세요 .
$str = 'Hello, World!';
$substring = 'hello';
$pos = stripos($str, $substring);
var_dump($pos); // int(0)
if ($pos === false) {
echo "문자열에 'Hello'를 찾을 수 없습니다.";
} else {
echo "문자열에 'Hello'가 포함되어 있습니다.";
}
// 출력: "문자열에 'Hello'가 포함되어 있습니다."
예제
stripos()
함수는 문자열에서 부분 문자열의 위치를 찾을 때 유용하게 사용될 수 있습니다. 이 함수의 주된 특징은 대소문자를 구분하지 않는다는 것이며, 이로 인해 대소문자에 민감하지 않게 문자열을 검색할 수 있습니다.
사용자 입력 검색
$user_input = $_GET['search_query'];
$content = 'This is a sample text for searching.';
if (stripos($content, $user_input) !== false) {
echo '검색어가 발견되었습니다.';
} else {
echo '검색어를 찾을 수 없습니다.';
}
대소문자 무시한 문자열 검사
$string = '학교종이 땡땡땡 어서 모이자!';
$search_term = '땡땡땡';
if (stripos($string, $search_term) !== false) {
echo '검색어가 발견되었습니다.';
} else {
echo '검색어를 찾을 수 없습니다.';
}
// 출력: '검색어가 발견되었습니다.'
문자열이 특정 단어로 시작하는지 확인
$string = 'Hello, world!';
$prefix = 'hello';
if (stripos($string, $prefix) === 0) {
echo "문자열은 '$prefix'로 시작됩니다.";
} else {
echo "문자열은 '$prefix'로 시작되지 않습니다.";
}
// 출력: "문자열은 'hello'로 시작됩니다."
참고문헌
같이 보기
- PHP strpos() 함수 – 대소문자 구분해서 문자열에 특정 문자 포함 여부 확인
- PHP mb_strpos() 함수 - strpos()의 한글 지원 기능 제공
- PHP str_contains() 함수 – 대소문자 구분해서 문자열에 특정 문자 포함 여부 확인
- PHP substr() 함수 - 문자열을 잘라서 추출하기
- PHP mb_substr() 함수 – substr()의 한글 깨짐을 해결하기
- PHP mb_stripos() 함수 – stripos()의 한글 지원 기능 제공
- PHP str_replace() 함수 – 문자열에서 특정 문자열을 다른 문자열로 바꾸는 함수
- PHP str_starts_with() 함수 – 특정 문자열로 시작하는지 체크
- PHP str_ends_with() 함수 – 특정 문자열로 끝나는지 체크