[PHP]image_type_to_extension()の戻り値がjpgじゃなくjpegだった件

Read More

image_type_to_extension()はPHP関数の一つ。
画像の拡張子を戻り値として返してくれるという機能をもつ。

この関数はGDライブラリを使用しないものなので割りと気軽に使えるという利点があったりする。
まあ今時GDライブラリを使わずに画像を触ることもそうないだろうけど。


このimage_type_to_extension()を利用してJPG画像の拡張子を取得した時、
今日までずっとjpgという文字列が返ってきてると思ってたんだけど、
よく見てみるとjpegの文字列が返ってきてることに気がついた。


ファイルから画像の拡張子を取得する部分はこんな感じ。
$sFilePath = '{ファイルパス}';
$ext = image_type_to_extension(exif_imagetype($sFilePath));




いやー今まで"jpg"が返ってきてると思い込んでて、ちゃんと拡張子の文字列を確認してなかったんだなー。
自分でちょっとびっくりした。


まあ別に"jpg"でも"jpeg"でもどっちでもいいっちゃいいんだけど、
なんとなく3文字ルールを遵守してたとこがあった。

ほら同一フォルダ内に"jpeg"とか"jpg"とか"JPG"とか"Jpeg"とかが混在したらいやじゃん?
そんだけなんだけどね。



もう稼動させちゃってる部分なので今更直すのも面倒だ。
でもま、いざってときのために直す方法の参考になるかも知れないので簡単にメモだけ。

■独自関数my_image_type_to_extension()
/**
 * image_type_to_extension()の一部を機能拡張
 * ****************************************40
 * 戻り値がjpegだったらjpgに変換するだけ
 * @param integer $imagetype
 * @param boolean $include_dot=true
 * @return string
 */
function my_image_type_to_extension($imagetype, $include_dot=true) {
  $ext = image_type_to_extension($imagetype, $include_dot);
  if($ext) $ext = preg_replace('/jpeg/', 'jpg', $ext);
  return $ext;
}// end function


こんなもん独自関数化するまでもないけど、でも一個一個に変換処理かますのもどうかと思うし…うーん悩ましいところ。




--
PHP公式マニュアルをみるとtif画像もtiffとして返してくるみたいね。
まあtifなんて拡張子触った記憶がないからどうでもいいんだけど。