str_ends_with

関数の概要

PHPの str_ends_with 関数は、指定した文字列が別の文字列の末尾に含まれているかどうかを調べるための関数です。PHP 8.0.0から利用可能で、文字列操作をシンプルかつ効率的に行いたい場合に非常に便利です。

パラメータの説明

  • haystack(文字列): チェック対象となる文字列。
  • needle(文字列): haystackの末尾にあるか確認したい文字列。

戻り値

str_ends_with は、needlehaystack の末尾に存在する場合は true を返し、そうでない場合は false を返します。needle が空文字列の場合は常に true となります。

使用例

基本的な使い方

<?php
var_dump(str_ends_with("example.php", ".php"));  // true
var_dump(str_ends_with("example.html", ".php")); // false
?>

文字列「example.php」が「.php」で終わっているか判定しています。この場合は末尾が一致するので true が返ります。

複数の拡張子判定に利用

<?php
$file = "image.jpeg";

if (str_ends_with($file, ".jpeg") || str_ends_with($file, ".jpg") || str_ends_with($file, ".png")) {
    echo "画像ファイルです。";
} else {
    echo "画像ファイルではありません。";
}
?>

ここではファイル名が一般的な画像拡張子で終わっているかどうかを調べています。どれか一つでも末尾が一致すれば画像ファイルと判定します。

URLのパス判定に利用

<?php
$url = "https://example.com/page.html";

if (str_ends_with($url, "/")) {
    echo "URLはスラッシュで終わっています。";
} else {
    echo "URLはスラッシュで終わっていません。";
}
?>

この例では、URLが「/」で終わるかどうかを判定しています。URLのパスの終わりの形状確認などに使えます。

関連する関数

  • str_starts_with: 文字列が指定文字列で始まるかを判定する関数
  • substr: 文字列の一部を取得する関数
  • mb_substr: マルチバイト文字に対応した部分文字列取得関数
  • strpos: ある文字列が別の文字列内で最初に現れる位置を返す関数

まとめ

str_ends_with はPHP 8.0から利用可能な、文字列が特定の文字列で終わっているかを簡単にチェックできる便利な関数です。ファイル拡張子の確認やURLの末尾判定など、多くの実務シーンで役立ちます。直感的に使えて読みやすいコードになるため、文字列操作の基本として覚えておくと良いでしょう。