str_ends_with
(PHP 8)
str_ends_with — 文字列が、指定された文字列で終わるかを調べる。
説明
haystack
が
needle
で終わるかを調べます。
大文字小文字は区別されます。
パラメータ
haystack
-
検索対象の文字列。
needle
-
haystack
で調べる部分文字列
例
例1 空文字列 ''
を使う場合
<?php
if (str_ends_with('abc', '')) {
echo "All strings end with the empty string";
}
?>
上の例の出力は以下となります。
All strings end with the empty string
例2 大文字小文字の区別
<?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() - 指定された部分文字列が、文字列に含まれるかを調べる
- str_starts_with() - 文字列が指定された部分文字列で始まるかを調べる
- stripos() - 大文字小文字を区別せずに文字列が最初に現れる位置を探す
- strrpos() - 文字列中に、ある部分文字列が最後に現れる場所を探す
- strripos() - 文字列中で、特定の(大文字小文字を区別しない)文字列が最後に現れた位置を探す
- strstr() - 文字列が最初に現れる位置を見つける
- strpbrk() - 文字列の中から任意の文字を探す
- substr() - 文字列の一部分を返す
- preg_match() - 正規表現によるマッチングを行う
+add a note
User Contributed Notes 3 notes
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;
}
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.
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));
}
}
?>