Изучение различных методов проверки того, заканчивается ли строка заданной подстрокой в ​​PHP

В PHP проверка того, заканчивается ли строка определенной подстрокой, является обычной операцией во многих приложениях. Это позволяет разработчикам проверять строки и манипулировать ими на основе их окончаний. В этой статье мы рассмотрим различные методы решения этой задачи, а также приведем примеры кода для каждого метода.

Методы проверки, заканчивается ли строка заданной подстрокой:

Метод 1: использование функции str_ends_with() (PHP 8+)
Функция str_ends_with() была введена в PHP 8 и специально разработана для проверки того, заканчивается ли строка заданной подстрокой. Он возвращает логическое значение, указывающее, заканчивается ли строка указанной подстрокой. Вот пример:

$string = "Hello, World!";
$substring = "World!";
if (str_ends_with($string, $substring)) {
    echo "The string ends with the substring.";
} else {
    echo "The string does not end with the substring.";
}

Метод 2: использование функции substr()
Другой способ проверить, заканчивается ли строка заданной подстрокой, — использовать функцию substr(). Этот метод предполагает извлечение нескольких последних символов из строки и сравнение их с нужной подстрокой. Вот пример:

$string = "Hello, World!";
$substring = "World!";
if (substr($string, -strlen($substring)) === $substring) {
    echo "The string ends with the substring.";
} else {
    echo "The string does not end with the substring.";
}

Метод 3. Использование регулярных выражений
Регулярные выражения предоставляют мощный способ сопоставления строк с образцом. Мы можем использовать регулярные выражения, чтобы проверить, заканчивается ли строка определенной подстрокой. Вот пример:

$string = "Hello, World!";
$substring = "World!";
if (preg_match('/' . preg_quote($substring, '/') . '$/', $string)) {
    echo "The string ends with the substring.";
} else {
    echo "The string does not end with the substring.";
}

Метод 4: использование функции mb_substr() (поддержка многобайтовых символов)
Если вы работаете с многобайтовыми символами, такими как строки UTF-8, рекомендуется использовать функцию mb_substr(). Это позволяет вам извлечь часть строки на основе позиций символов. Вот пример:

$string = "こんにちは、世界!";
$substring = "世界!";
if (mb_substr($string, -mb_strlen($substring)) === $substring) {
    echo "The string ends with the substring.";
} else {
    echo "The string does not end with the substring.";
}