パスからファイル名だけを取得する、basename関数

やりたいこと

 ・PHPでファイルのパスからファイル名だけを取得する

 ・ファイル名を整形して取得する

basename関数

 昨日、PHPの勉強をしていたところbasename関数という関数に出会ったのですが、後で忘れそうな感じがするので、備忘録として記事にまとめておきたいと思います。

basename ( string $path [, string $suffix ] ) : string

 $path: ファイルのパス名 

 $suffix: $suffixと$pathの末尾が一致している場合、ファイル名からその部分がカットされる

 はじめに、サンプルコードを提示します。

 2行目が、最もシンプルな例になります。パス名「section2/checkdate.php」から、ファイル名の部分である「checkdate.php」が結果として返されます。なお、第2引数は省略されています。

 3行目に関しては、パス名「section2/checkdate.php」からファイル名である「checkdate.php」を取り出し、そこから第2引数に指定されている「.php」をカットするので、結果として「checkdate」が返されます。

 4行目では、ここまでと同様に、パス名「section2/checkdate.php」からファイル名「checkdate.php」を取り出します。その後、第2引数をカットしたいのですが、第2引数は「.txt」であり、「checkdate.php」の末尾と一致しないので、カットは行われません。したがって、そのまま「checkdate.php」が返されます。

 5行目は、基本的に3行目と同じですが、第2引数の指定のしかたによっては、拡張子よりも前の部分までカットできるという例です。

 6行目や7行目のような、第2引数が第1引数の末尾といわゆる「部分一致」の場合は、カットは行われませんので注意しましょう。一致している部分だけがカットされるというわけではありません。