PHP 8.6.0 Beta 1 is available for testing

str_ends_with

(PHP 8)

str_ends_withПроверяет, заканчивается ли строка подстрокой

Описание

function str_ends_with(string $haystack, string $needle): bool

Функция выполняет регистрозависимую проверку, которая указывает, заканчивается ли строка haystack подстрокой needle.

Список параметров

haystack

Строка, в которой требуется найти подстроку.

needle

Подстрока, которую требуется найти в строке haystack.

Возвращаемые значения

Функция возвращает true , если строка haystack заканчивается подстрокой needle, иначе возвращает false .

Примеры

Пример #1 Пример поиска пустой подстроки '' в конце строки

<?php
if (str_ends_with('абв', '')) {
 echo "Каждая PHP-строка заканчивается пустой подстрокой";
}
?>

Результат выполнения приведённого примера:

Каждая PHP-строка заканчивается пустой подстрокой

Пример #2 Демонстрация чувствительности к регистру

<?php
$string = 'Ленивая лиса перепрыгнула через забор';
if (str_ends_with($string, 'забор')) {
 echo "Строка заканчивается подстрокой 'забор'\n";
}
if (str_ends_with($string, 'Забор')) {
 echo 'Строка заканчивается подстрокой "Забор"';
} else {
 echo 'Функция не нашла подстроку "Забор", потому что регистр не совпадает';
}
?>

Результат выполнения приведённого примера:

Строка заканчивается подстрокой 'забор'
Функция не нашла подстроку "Забор", потому что регистр не совпадает

Примечания

Замечание: Функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • str_contains() - Определяет, содержит ли строка подстроку
  • str_starts_with() - Проверяет, начинается ли строка с подстроки
  • stripos() - Возвращает позицию первого вхождения подстроки без учёта регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строку
  • strripos() - Ищет в строке позицию последнего вхождения подстроки, без учёта регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке символ из набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 3 notes

up
12
javalc6 at gmail dot com
3 years ago
In case you are using an older version of PHP, you can define and use the following function:
function endsWith($haystack, $needle) {
 $length = strlen($needle);
 return $length > 0 ? substr($haystack, -$length) === $needle : true;
}
up
9
Reinder
3 years ago
In PHP7 you may want to use:
if (!function_exists('str_ends_with')) {
 function str_ends_with($str, $end) {
 return (@substr_compare($str, $end, -strlen($end))==0);
 }
}
AFAIK that is binary safe and doesn't need additional checks.
up
7
divinity76 at gmail dot com
4 years ago
this is the fastest php7-implementation i can think of, it should be faster than javalc6 and Reinder's implementations, as this one doesn't create new strings (but theirs does)
<?php
if (! function_exists('str_ends_with')) {
 function str_ends_with(string $haystack, string $needle): bool
 {
 $needle_len = strlen($needle);
 return ($needle_len === 0 || 0 === substr_compare($haystack, $needle, - $needle_len));
 }
}
?>
+Добавить

AltStyle によって変換されたページ (->オリジナル) /