Strings strrpos

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

strrpos — 문자열에서 하위 문자열이 마지막으로 나타나는 위치 찾기


설명

strrpos(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
0 또는 양수이면 haystack의 첫 번째 offset 바이트를 건너뛰고 왼쪽에서 오른쪽으로 검색이 수행됩니다.

음수이면 haystack의 마지막 offset 바이트를 건너뛰고 처음으로 발생한 needle을 검색하는 검색이 오른쪽에서 왼쪽으로 수행됩니다.

메모: 이것은 마지막 offset 바이트 전에 needle의 마지막 발생을 효과적으로 찾고 있습니다.


반환 값

haystack 문자열의 시작 부분을 기준으로 needle이 존재하는 위치를 반환합니다(검색 방향 또는 오프셋과 무관).

참고: 문자열 위치는 1이 아닌 0에서 시작합니다.

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

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


변경 로그

버전 설명
8.0.0 int를 needle로 전달하는 것은 더 이상 지원되지 않습니다.
7.3.0 int를 needle로 전달하는 것은 더 이상 사용되지 않습니다.

Examples

예제 #1 needle이 haystack에 있는지 확인

반환 값을 "0 위치에 있는 문자" 및 "문자를 찾을 수 없음"으로 착각하기 쉽습니다. 차이를 감지하는 방법은 다음과 같습니다.

                  
<?php

$pos = strrpos($mystring, "b");
if ($pos === false) { // note: three equal signs
    // not found...
}

?>
                  
                

예제 #2 오프셋으로 검색

                  
<?php
$foo = "0123456789a123456789b123456789c";

// Looking for '0' from the 0th byte (from the beginning)
var_dump(strrpos($foo, '0', 0));

// Looking for '0' from the 1st byte (after byte "0")
var_dump(strrpos($foo, '0', 1));

// Looking for '7' from the 21th byte (after byte 20)
var_dump(strrpos($foo, '7', 20));

// Looking for '7' from the 29th byte (after byte 28)
var_dump(strrpos($foo, '7', 28));

// Looking for '7' right to left from the 5th byte from the end
var_dump(strrpos($foo, '7', -5));

// Looking for 'c' right to left from the 2nd byte from the end
var_dump(strrpos($foo, 'c', -2));

// Looking for '9c' right to left from the 2nd byte from the end
var_dump(strrpos($foo, '9c', -2));
?>
                  
                

위의 예는 다음을 출력합니다.

int(0)
bool(false)
int(27)
bool(false)
int(17)
bool(false)
int(29)
                

기타

  • strpos() - 문자열에서 부분 문자열이 처음 나타나는 위치 찾기
  • stripos() - 문자열에서 대소문자를 구분하지 않는 하위 문자열이 처음 나타나는 위치 찾기
  • strripos() - 문자열에서 대소문자를 구분하지 않는 하위 문자열이 마지막으로 나타나는 위치 찾기
  • strrchr() - 문자열에서 마지막 문자 찾기
  • substr() - 문자열의 일부 반환