Strings strpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strpos — 문자열에서 부분 문자열이 처음 나타나는 위치 찾기


설명

strpos(string $haystack, string $needle, int $offset = 0): int|false

haystack 문자열에서 needle이 처음 나타나는 숫자 위치를 찾습니다.


매개변수

haystack
검색할 문자열입니다.
needle
PHP 8.0.0 이전에는 needle이 문자열이 아닌 경우 정수로 변환되어 문자의 서수 값으로 적용되었습니다. 이 동작은 PHP 7.3.0부터 더 이상 사용되지 않으며 이에 의존하지 않는 것이 좋습니다. 의도한 동작에 따라 needle을 명시적으로 문자열로 캐스팅하거나 chr()에 대한 명시적 호출을 수행해야 합니다.
offset
지정된 경우 검색은 문자열의 시작 부분부터 계산된 이 문자 수만큼 시작합니다. 오프셋이 음수이면 문자열 끝에서 계산된 이 문자 수만큼 검색이 시작됩니다.

반환 값

haystack 문자열의 시작 부분을 기준으로 needle이 존재하는 위치를 반환합니다(오프셋과 무관). 또한 문자열 위치는 1이 아니라 0에서 시작합니다.

needle이 발견되지 않으면 false를 반환합니다.

경고 이 함수는 부울 false을 반환할 수 있지만 false으로 평가되는 부울이 아닌 값을 반환할 수도 있습니다. 자세한 내용은 부울 섹션을 참조하세요. 이 함수의 반환 값을 테스트하려면 === 연산자를 사용하십시오.


변경 로그

버전 설명
8.0.0 int를 needle로 전달하는 것은 더 이상 지원되지 않습니다.
7.3.0 int를 needle로 전달하는 것은 더 이상 사용되지 않습니다.
7.1.0 음수 offset에 대한 지원이 추가되었습니다.

Examples

예제 #1 === 사용

                  
<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}
?>
                  
                

예제 #2 !== 사용

                  
<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// The !== operator can also be used.  Using != would not work as expected
// because the position of 'a' is 0. The statement (0 != false) evaluates
// to false.
if ($pos !== false) {
     echo "The string '$findme' was found in the string '$mystring'";
         echo " and exists at position $pos";
} else {
     echo "The string '$findme' was not found in the string '$mystring'";
}
?>
                  
                

예제 #3 오프셋 사용

                  
<?php
// We can search for the character, ignoring anything before the offset
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
?>
                  
                

메모

참고: 이 함수는 binary-safe입니다.


기타

  • stripos() - 문자열에서 대소문자를 구분하지 않는 하위 문자열이 처음 나타나는 위치 찾기
  • str_contains() - 문자열에 주어진 부분 문자열이 포함되어 있는지 확인
  • str_ends_with() - 문자열이 주어진 부분 문자열로 끝나는지 확인
  • str_starts_with() - 문자열이 주어진 부분 문자열로 시작하는지 확인
  • strrpos() - 문자열에서 하위 문자열이 마지막으로 나타나는 위치 찾기
  • strripos() - 문자열에서 대소문자를 구분하지 않는 하위 문자열이 마지막으로 나타나는 위치 찾기
  • strstr() - 문자열의 첫 번째 항목 찾기
  • strpbrk() - 임의의 문자 집합에 대한 문자열 검색
  • substr() - 문자열의 일부 반환
  • preg_match() - 정규식 일치 수행