Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 문자열이 특정 문자열로 끝나는지 확인하는 방법

이 글에서는 문자열이 지정한 문자열로 끝나는지 확인하는 사용자 정의 함수를 만드는 방법을 소개합니다. 이 함수는 조건이 일치하면 TRUE를, 일치하지 않으면 FALSE를 반환합니다.

함수 문법

endFunc(str, lastStr)

함수에서 사용되는 매개변수는 다음과 같습니다.

  • str − 끝부분을 검사할 대상 문자열입니다.

  • lastStr − 문자열 끝에서 찾고자 하는 텍스트입니다.

예제

다음은 endFunc() 함수를 구현하고 실행해 보는 예제입니다.

<?php
    function endFunc($str, $lastString) {
        $count = strlen($lastString);
        if ($count == 0) {
            return true;
        }
        return (substr($str, -$count) === $lastString);
    }
    if(endFunc("pqrstuv","rst"))
       echo "True!";
    else
       echo "False!";
?>

실행 결과

False!

코드 설명

함수의 동작 원리를 살펴보면 다음과 같습니다.

  • strlen()으로 검색할 문자열($lastString)의 길이를 구합니다.

  • 검색 문자열의 길이가 0이면 비교할 필요가 없으므로 즉시 true를 반환합니다.

  • substr($str, -$count)는 음수 오프셋을 사용하여 원본 문자열의 뒤에서부터 해당 길이만큼 잘라낸 부분 문자열을 반환합니다.

  • 잘라낸 부분 문자열과 검색 문자열을 ===(엄격 비교)로 비교하여 결과를 반환합니다.

위 예제에서 "pqrstuv"의 마지막 세 글자는 "tuv"이므로 "rst"와 일치하지 않아 False!가 출력됩니다. 만약 endFunc("pqrstuv", "tuv")처럼 호출했다면 True!가 출력됩니다.

참고: PHP 8 이상에서는 str_ends_with() 활용

PHP 8부터는 별도의 함수를 직접 작성하지 않아도 내장 함수 str_ends_with()로 동일한 기능을 간단히 처리할 수 있습니다.

<?php
    if (str_ends_with("pqrstuv", "tuv")) {
        echo "True!";
    } else {
        echo "False!";
    }
?>

PHP 7.x 이하 버전을 사용하는 환경이라면 위에서 소개한 endFunc()와 같은 사용자 정의 함수를 활용하는 것이 좋습니다.