PHP의 mb_strrchr() 함수는 주어진 문자열(haystack) 안에서 특정 문자열(needle)이 마지막으로 나타나는 위치를 찾아 그 이후의 문자열 부분을 반환하는 멀티바이트 문자열 함수입니다.
예를 들어, "PHP Tutorials"라는 문자열에서 "ia"를 검색한다고 가정해 보겠습니다. "ia"는 "Tutorials" 단어 안에 포함되어 있으며, mb_strrchr() 함수는 "ia"가 마지막으로 등장한 지점부터 끝까지의 문자열인 "ials"를 반환합니다. 만약 needle을 찾지 못하면 false를 반환합니다.
문법(Syntax)
string mb_strrchr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null)
매개변수(Parameters)
mb_strrchr() 함수는 다음 네 가지 매개변수를 받습니다.
$haystack − needle이 마지막으로 나타나는 위치를 검색할 대상 문자열입니다.
$needle − haystack 안에서 찾고자 하는 문자열입니다.
$before_needle − 반환할 문자열의 범위를 결정하는 선택적 매개변수입니다. true로 설정하면 문자열 시작부터 needle이 마지막으로 나타나는 지점 직전까지의 부분을 반환하고, false(기본값)로 설정하면 needle이 마지막으로 나타나는 지점부터 문자열 끝까지의 부분을 반환합니다.
$encoding − 문자열을 처리할 때 사용할 문자 인코딩을 지정하는 선택적 매개변수입니다. 생략하면 PHP 내부 인코딩(internal encoding)이 사용됩니다.
반환값(Return Value)
needle을 찾으면 해당하는 haystack의 부분 문자열을 반환하고, 찾지 못하면 false를 반환합니다.
예제 1 − before_needle이 false인 경우
$before_needle을 false로 설정하면 needle이 마지막으로 나타나는 지점부터 끝까지의 문자열이 반환됩니다.
<?php
// "PHP Tutorials" 문자열에서 "ia" 검색
// before_needle = false
$string = mb_strrchr("PHP Tutorials", "ia", false);
// 출력
print_r($string);
?>출력 결과
ials
예제 2 − before_needle이 true인 경우
$before_needle을 true로 설정하면 문자열 시작부터 needle이 마지막으로 나타나는 지점 직전까지의 문자열이 반환됩니다.
<?php
// "PHP Tutorials" 문자열에서 "ia" 검색
// before_needle = true
$string = mb_strrchr("PHP Tutorials", "ia", true);
// 출력
print_r($string);
?>출력 결과
PHP Tutor
예제 3 − 대소문자가 일치하지 않는 경우
<?php
// "PHP Tutorials" 문자열에서 "Ia" 검색
// needle이 대문자로 작성됨
// mb_strrchr()은 대소문자를 구분하므로 아무것도 반환하지 않음
$string = mb_strrchr("PHP Tutorials", "Ia", false);
// 출력
print_r($string);
?>참고 − 위 예제에서 needle인 "Ia"는 대문자로 작성되었습니다. mb_strrchr() 함수는 대소문자를 구분(case-sensitive)하기 때문에 원본 문자열의 소문자 "ia"와 일치하지 않으므로 아무것도 반환하지 않습니다. 대소문자 구분 없이 검색하려면 문자열을 미리 같은 형태로 변환하거나 다른 방법을 사용해야 합니다.