5.02. 문자열이 특정 문자열로 끝나는지 검사하기

php 에는 문자열이 특정 문자열로 끝나는지 확인하는 ends_with 함수가 없다. 따라서 직접 만들어 써야 한다.

function string_ends_with($input, $value)
{
    return $value === "" || (($temp = mb_strlen($input) - mb_strlen($value)) >= 0 && mb_strpos($input, $value, $temp) !== false);
}

var_dump(string_ends_with("안녕하세요.", "하세요."));
var_dump(string_ends_with("안녕하세요.", "하이"));

위 코드를 string_ends_with.php 파일에 저장하고 브라우저에서 결과를 확인한다.

bool(true) bool(false) 

string_ends_with 함수의 첫번째 파라미터는 전체 문자열, 두번째 문자열은 끝나는 문자열이다.
아래 예제는 "안녕하세요" 가 "하세요"로 끝나는지 검사한다.

string_ends_with("안녕하세요.", "하세요.")

mb_strpos 함수는 input 문자열에서 value 문자열이 나오는 위치를 왼쪽에서부터 찾는 PHP 내장함수 strpos의 멀티바이트 함수다.