728x90
PHP로 프로그래밍을 할 때, 특정 문자열 안에서 원하는 단어나 문자가 포함되어 있는지, 그리고 만약 포함되어 있다면 어느 위치에 있는지를 알아내야 하는 경우가 있습니다.
strpos()는 string position의 약자로, haystack(검색 대상 문자열)에서 needle(찾을 문자열)이 처음으로 나타나는 위치(인덱스)를 반환합니다.
예제코드
<?php
$sentence = "I love PHP, I love PHP too!";
// "PHP"라는 단어가 처음 나오는 위치를 찾습니다.
$position = strpos($sentence, "PHP");
echo "문장: " . $sentence . "<br>";
echo "'PHP'의 첫 위치: " . $position;
?>
시연화면
strrpos()의 r은 Reverse를 의미합니다. 이름처럼, 문자열의 뒤에서부터 needle을 검색하여 처음으로 발견된 위치의 인덱스를 반환합니다. (주의: 검색은 뒤에서부터 하지만, 반환되는 인덱스 값은 여전히 문자열 맨 앞에서부터 계산된 위치입니다.)
예제 코드
<?php
$sentence = "I love PHP, I love PHP too!";
// "PHP"라는 단어를 뒤에서부터 검색하여 찾습니다.
$last_position = strrpos($sentence, "PHP");
echo "문장: " . $sentence . "<br>";
echo "'PHP'의 마지막 위치: " . $last_position;
?>
시연 화면
주의사항
strpos()를 사용할때 찾으려는 문자열이 맨 앞에 일경우입니다.
이경우 0번 위치에서 찾았기 때문에 0을 반환합니다
PHP에서 if 조건문을 만났을 땐 숫자 0 은 false로 취급됩니다.
예제코드
<?php
$greeting = "Hello world";
$pos = strpos($greeting, "Hello");
// 올바른 사용 예: 반환값이 false가 아닌지 타입까지 엄격하게 비교
if ($pos !== false) {
echo "찾았습니다! 위치는 " . $pos . "입니다.";
} else {
echo "찾지 못했습니다...";
}
?>
시연 화면
'PHP' 카테고리의 다른 글
[PHP] strtotime()으로 자연어 날짜 처리하기 (0) | 2025.09.09 |
---|---|
[PHP] switch 문을 대체하는 match 표현식 (0) | 2025.09.05 |
[PHP] 일반 배열보다 빠르고 메모리를 적게 쓰는 SplFixedArray (0) | 2025.08.31 |
[PHP] parse_str()과 http_build_query()로 쿼리 스트링 파싱 및 생성하기 (1) | 2025.08.29 |
[PHP] range() + array_filter()로 짝수/홀수 필터링하기 (0) | 2025.08.24 |