PHPプログラミング

最終更新日:
公開日:

レシピ

ファイル / ディレクトリ

ファイルの拡張子を取得する

pathinfo関数を使って、ファイルの拡張子を取得する方法を解説します。

この記事のポイント

  • ファイルの拡張子を取得する
  • 拡張子の偽造まで調べる場合はMIMEタイプも調べる必要がある

目次

ファイルの拡張子を取得する

pathinfo関数にファイルのパスを渡すと、ファイルの拡張子を取得することができます。

コード例

var_dump( pathinfo('./test/index.html') );

出力例

array(4) {
	["dirname"]=> string(6) "./test"
	["basename"]=> string(10) "index.html"
	["extension"]=> string(4) "html"
	["filename"]=> string(5) "index"
}

配列形式で返り値を渡し、extensionに拡張子の情報が入っています。

Note

pathinfo関数は拡張子の偽造を調べることはできません。ファイルの拡張子が正しいかを厳密に調べたい場合は、mime_content_type関数などでMIMEタイプを取得して確認する必要があります。

使用例

pathinfo関数はファイルのパスのみ渡した場合は返り値が配列形式となりますが、第2パラメータに定数を渡すと取得したい情報に絞ることができます。
例えば、ファイルの拡張子は「PATHINFO_EXTENSION」を渡すと取得できます。

コード例

// 日本語の文字コードを設定
setlocale(LC_ALL, 'ja_JP.UTF-8');

$info = pathinfo( $path1, PATHINFO_EXTENSION);
echo 'ファイルの拡張子は「' . $info . '」です。';

出力例

ファイルの拡張子は「html」です。

今回は拡張子でしたが、定数は他にもディレクトリ情報を返す「PATHINFO_DIRNAME」、ファイル名を返す「PATHINFO_BASENAME」、ファイル名から拡張子を除いた部分を返す「PATHINFO_FILENAME」があります。

ファイル名、フォルダ名に日本語を含む場合は必ずsetlocale関数を使って日本語の文字コードを扱うように設定する必要があります。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。