PHP 버전
5+
$str = 'Hello, World! Welcome to the WORLD!';
$substring = 'world'; // 대소문자(World!, WORLD!, world)를 구분하지 않음

$pos = strripos($str, $substring);

if ($pos !== false) {
    echo "찾은 위치: $pos";
} else {
    echo '찾을 수 없습니다.';
}

// 출력: 찾은 위치: 29

/*
 * 주의하세요!
 * 문자열에서 인덱스는 0부터 시작합니다.
 * 첫 번째 문자의 인덱스는 0이고, 두 번째 문자의 인덱스는 1입니다.
*/
설명
strripos(string $haystack, string $needle, int $offset = 0): int|false
$newstring = 'abcdef ghijk';
$pos = strripos($newstring, 'a');

var_dump($pos); // int(0)
$str = 'Hello, World!';
$substring = 'Hello';

$pos = strripos($str, $substring);

var_dump($pos); // int(0)

if ($pos === false) {
    echo "문자열에 'Hello'를 찾을 수 없습니다.";
} else {
    echo "문자열에 'Hello'가 포함되어 있습니다.";
}

// 출력: "문자열에 'Hello'가 포함되어 있습니다."

/* 또는 */

if ($pos !== false) {
    echo "문자열에 'Hello'가 포함되어 있습니다.";
} else {
    echo "문자열에 'Hello'를 찾을 수 없습니다.";
}

// 출력: "문자열에 'Hello'가 포함되어 있습니다."
$str = '반갑습니다. 환영합니다!';
$substring = '환영';

$pos = strripos($str, $substring);

if ($pos !== false) {
    echo "찾은 위치: $pos";
} else {
    echo '찾을 수 없습니다.';
}

// 출력: 찾은 위치: 17 <= 원하지 않는 결과가 발생합니다.
$filename = 'image.test.PNG'; // 파일명

$extension = '.png'; // 찾을 확장자

$dot_position = strripos($filename, $extension);

if ($dot_position !== false) {
    echo "찾은 위치: $dot_position";
} else {
    echo '확장자를 찾을 수 없습니다.';
}

// 출력: 찾은 위치: 10