2010年5月18日火曜日

PHPで画像ファイルの Mime-Type (Content-Type)を取得する方法

4つ見つけた。


getimagesizeを使う方法

$info = getImageSize($path);
echo $info['mime'];
PHPのGD拡張が必要。
2行になってしまってちょっと冗長か。



exif_imagetypeを使う方法
echo image_type_to_mime_type(exif_imageType($path));
前提としてPHPのExif拡張が有効になっている必要あり。(参考:PHP: インストール手順 - Manual
今度は横に冗長だ。



mime_content_typeを使う方法
echo mime_content_type($path);
シンプルで良いのだが、なぜか非推奨。
(環境によってはmime_content_typeが無い場合もある?)



Fileinfoオブジェクト(FInfoクラス)を使う方法
$info = new FInfo(FILEINFO_MIME_TYPE);
echo $info->file($path);
PHP5.3以降で使える。それ以前はPECL拡張だった(参考:PHP: インストール手順 - Manual
ちょっと大袈裟な気がするが、PHP5.3以降ではこれが推奨されるようだ。

でもクラス名はFileInfoにすべきだった?

0 件のコメント:

ブログ アーカイブ

tags