【PHP】ファイルの拡張子を文字列で取得する関数

ファイルの拡張子を文字列で取得したい場合、
pathinfo()関数の
第一引数にファイルパス、
第二引数にPATHINFO_EXTENSIONのオプションを指定する。

【例1】

// pathinfo(ファイルパス, オプション);
$extension = pathinfo($file_name, PATHINFO_EXTENSION);

pathinfo()はファイル名が日本語の場合、バグがあるそうなので、別の方法も一応記載しておきます。

【例2】

// funcGetExtension(ファイルパス);
function funcGetExtension($file_name){
	// ファイル名反転
	$file_text = strrev($file_name);
	// 拡張子取得
	$file_ext = substr($file_text, 0, strpos($file_text, "."));
	return strrev($file_ext);
}

こちらはファイルパスの文字列を反転させ、”.”以降の文字列を拡張子として取得します。

【例3】

// funcGetExtension(ファイルパス);
function funcGetExtension($file_path){
	// ファイル名分解
	$file_text = explode("." , $file_path);
	// 一番後ろの文字列を取得
	return array_pop($file_text);
}

こちらはファイルパスの文字列を”.”で分解して配列に入れ、配列最後尾の文字列を拡張子として取得します。

画像ファイルを投稿するフォームなどに利用する場合、ユーザが日本語ファイル名で保存して利用するパターンが多いので、例2,3を使った方がいいかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>