str_ends_with
(PHP 8)
str_ends_with — Checks 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() - 查找字符串首次出现的位置(不区分大小写)
- strrpos() - 计算指定字符串在目标字符串中最后一次出现的位置
- strripos() - 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
- strstr() - 查找字符串的首次出现
- strpbrk() - 在字符串中查找一组字符的任何一个字符
- substr() - 返回字符串的子串
- preg_match() - 执行匹配正则表达式
add a note
User Contributed Notes 4 notes
javalc6 at gmail dot com ¶
1 year ago
In case you are using an older version of PHP (e.g. PHP 7), you can define and use the following function:
function endsWith($haystack, $needle) {
$length = strlen($needle);
return $length > 0 ? substr($haystack, -$length) === $needle : true;
}
divinity76 at gmail dot com ¶
7 months 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));
}
}
?>
kitchin at lapage dot com ¶
4 months ago
Wordpress 5.9 RC3 does it this way:
<?php
if ( ! function_exists( 'str_ends_with' ) ) {
function str_ends_with( $haystack, $needle ) {
if ( '' === $haystack && '' !== $needle ) {
return false;
}
$len = strlen( $needle );
return 0 === substr_compare( $haystack, $needle, -$len, $len );
}
}
?>
I suppose the compiler optimizes for the fact that `substr_compare()` is only being used for equality, not comparison ( <0, >0 ).
备份地址:http://www.lvesu.com/blog/php/function.str-ends-with.php