PHPでファイル名や拡張子を取得する方法を解説!

ファイルのパスを表す文字列からファイル名だけを取得したり、ファイルの拡張子だけを取得する場面に遭遇することはよくあります。PHPではファイル名を取得したり、拡張子を取得するための便利な関数が用意されています。この記事ではその方法について解説しています。

コンテンツ [表示]

  1. 1PHPでファイル名や拡張子を取得したい
  2. 2PHPでファイル名や拡張子を取得する方法
  3. 2.1basename関数
  4. 2.2pathinfo関数
  5. 3まとめ

PHPでファイル名や拡張子を取得したい

ファイルのパスに対してファイル名だけ取得したり、ファイルの拡張子だけ取得したい場合などがあると思います。

文字列を切り取ったり、削除したり操作する関数は大概どのプログラミング言語にも用意されているので、それらの関数を駆使することでファイルの情報を抽出することも可能でしょう。しかし、その場合コードが冗長になったりすることは避けられないでしょう。

PHPではファイルのパスからファイル名やファイルの拡張子を取得する関数が用意されています。それらの関数の使い方をこの記事では紹介していきたいと思います。

PHPでファイル名や拡張子を取得する方法

basename関数

まずはbasename関数を使ったファイル名や拡張子を取得する方法を紹介します。

basename関数はパスの最後にある名前の部分を返してくれる関数です。Windowsでは、/(スラッシュ)と\(バックスラッシュ)の両方をディレクトリ区切り文字として、その他の環境では/(スラッシュ)をディレクトリ区切り文字として扱います。最後の区切り文字以降の文字列を取得して返します。

ファイルの取得

basename関数の引数にファイルまでのパスの文字列を指定することで、自身のファイル名を取得することができます。

ディレクトリの取得

basename関数の引数にディレクトリまでのパスの文字列を指定することで、自身のディレクトリ名を取得することができます。

ファイル名の取得

basename関数は第二引数に取り除きたい最後の文字を指定することができます。そのため、第二引数にファイル拡張子の文字列を指定することでファイル拡張子を取り除いたファイル名のみを取得することができます。

pathinfo関数

次にpathinfo関数を使ったファイル名や拡張子を取得する方法を紹介します。

basename関数はファイルパスに関する情報を連想配列で返してくれる関数です。第一引数にはファイルのパスを指定します。第二引数にはオプションを指定することで、ファイルパスに関する特定の情報のみを返してくれるようになります。

ディレクトリの取得

ファイルパスからディレクトリ名を取得するには戻り値の連想配列にdirnameというキーを指定することで取得できます。第二引数のオプションで指定する場合はPATHINFO_DIRNAMEで取得することができます。

ファイルの取得

ファイルパスからファイル名を取得するには戻り値の連想配列にbasenameというキーを指定することで取得できます。第二引数のオプションで指定する場合はPATHINFO_BASENAMEで取得することができます。

拡張子の取得

ファイルパスからファイルの拡張子を取得するには戻り値の連想配列にextensionというキーを指定することで取得できます。第二引数のオプションで指定する場合はPATHINFO_EXTENSIONで取得することができます。

basename関数ではファイルの拡張子を取得することはできないので、ファイルの拡張子を取得したい場合にはpathinfo関数を使用しましょう。

ファイル名の取得

ファイルパスから拡張子を除いたファイル名を取得するには戻り値の連想配列にfilenameというキーを指定することで取得できます。第二引数のオプションで指定する場合はPATHINFO_FILENAMEで取得することができます。

ファイル名も取得する場合もbasename関数の場合は事前に取り除きたい拡張子の文字列を知っておく必要がありましたが、pathinfo関数を使えばそういった必要はありません。

まとめ

PHPでファイル名や拡張子を取得する方法を紹介しました。basename関数を使う方法とpathinfo関数を使う方法を紹介しましたが、pathinfo関数を使う方が無難でしょう。是非、参考にしてみてくださいね。

今だけ
無料

【7月31日まで】全カリキュラム無料で提供中!

Qumeru

Qumeru[クメル]ではプログラミング学習が出来るカリキュラムを7月31日までの期間限定で無料で提供しています。

無料登録することで、すぐにプログラミング学習を始められます。ぜひカリキュラムをお試し下さい!

関連記事

【期間限定】全カリキュラム無料で提供中!

Qumeru[クメル]ではプログラミング学習の全カリキュラムを7月31日まで期間限定で無料で提供しています。

無料登録することで、すぐにプログラミング学習を始められます。ぜひお試し下さい!

目次

みぎさん
ライター

みぎさん

大阪府の現役システムエンジニアです。WEB制作やWEB開発、ライティングなど幅広く活動しております。 【言語/FW】HTML,CSS,Sass,JavaScript,jQuery,Vue.js,PHP,WordPress,Laravel,Java