PHP Conference Nagoya 2025

str_ends_with

(PHP 8)

str_ends_withChecks if a string ends with a given substring

Опис

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

Performs a case-sensitive check indicating if haystack ends with needle.

Параметри

haystack

The string to search in.

needle

The substring to search for in the haystack.

Значення, що повертаються

Returns true if haystack ends with needle, false otherwise.

Приклади

Приклад #1 Using the empty string ''

<?php
if (str_ends_with('abc', '')) {
echo
"All strings end with the empty string";
}
?>

Поданий вище приклад виведе:

All strings end with the empty string

Приклад #2 Showing case-sensitivity

<?php
$string
= 'The lazy fox jumped over the fence';

if (
str_ends_with($string, 'fence')) {
echo
"The string ends with 'fence'\n";
}

if (
str_ends_with($string, 'Fence')) {
echo
'The string ends with "Fence"';
} else {
echo
'"Fence" was not found because the case does not match';
}

?>

Поданий вище приклад виведе:

The string ends with 'fence'
"Fence" was not found because the case does not match

Примітки

Зауваження: Ця функція є бінарно безпечною.

Прогляньте також

  • str_contains() - Determine if a string contains a given substring
  • str_starts_with() - Checks if a string starts with a given substring
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strstr() - Find the first occurrence of a string
  • strpbrk() - Search a string for any of a set of characters
  • substr() - Return part of a string
  • preg_match() - Perform a regular expression match

add a note

User Contributed Notes 3 notes

up
9
javalc6 at gmail dot com
1 year 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
8
Reinder
1 year 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
6
divinity76 at gmail dot com
3 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));
}
}
?>
To Top