最終更新日:
公開日:
レシピ
ファイル / ディレクトリ
パスからファイル名を取得する
basename関数、またはpathinfo関数を使い、パスからファイル名のみを取得する方法について解説します。
この記事のポイント
- basename関数を使う方法と、pathinfo関数を使う方法の2つのパターンがある
- basename関数はファイル名のみ取得し、pathinfo関数は付随する他の情報も取得する
- URL形式のパスからもファイル名を取得できる
目次
パスからファイル名のみ取得する
パスからファイル名のみを取得したい場合、basename関数、またはpathinfo関数を使って取得することができます。
それぞれのコード例と、出力例は以下のようになります。
basename関数のコード例
echo basename('/Local/File/test/images/pic.jpg');
出力例
pic.jpg
続いて、pathinfo関数のコード例です。
pathinfo関数のコード例
var_dump( pathinfo( '/Local/File/test/images/pic.jpg'));
出力例
array(4) {
["dirname"]=> string(6) "./test"
["basename"]=> string(10) "sample.jpg"
["extension"]=> string(3) "jpg"
["filename"]=> string(6) "sample"
}
basename関数はファイル名のみ返すのに対し、pathinfo関数はファイル名以外の情報も含めて返します。
そのため、2つの方法のうちどちらを使用するかはファイル名以外の情報も必要かどうかで判断することができます。
Note
basename関数、およびpathinfo関数は拡張子の偽造を調べることはできません。ファイルの拡張子が正しいかを厳密に調べたい場合は、mime_content_type関数などでMIMEタイプを取得して確認する必要があります。
URL形式のパスからファイル名のみを取得する
ファイルのパスはURL形式でも取得することができます。
basename関数のコード例
echo basename('http://localhost/test/pic.gif');
出力例
pic.gif
pathinfo関数も同じように取得できます。
今回はファイル名のみを取得するように、第2パラメータに定数を渡します。
pathinfo関数のコード例
echo pathinfo( 'http://localhost/test/sample.jpg', PATHINFO_BASENAME);
出力例
sample.jpg
定数を渡すと、返り値は配列形式ではなく文字列のみになり、basename関数と全く同じ返り値となります。