ファイル内容からMIMEタイプを確認する方法・finfo_file

PHPのfinfo_file関数を使用することにより、ファイルのMIMEタイプを取得することができます。
以下にPHPのサンプルコードを含め説明します。
使用した環境は、Ubuntu12.04になります。
PHPは以下のコマンドでPHP CLIが動作するようにパッケージをインストールしました。

sudo apt-get install php5-cli

スポンサーリンク

finfo_file, finfo_openを使ったPHPサンプルスクリプト

以下にMIMEタイプを調べたい場合のPHPサンプルスクリプトを記します。

<?php
$filename = "MIMEタイプを調べたいファイル";
$finfo = finfo_open(FILEINFO_MIME_TYPE);
echo finfo_file($finfo, $filename)
finfo_close($finfo);
?>

上記のPHPサンプルスクリプトを簡単に説明します。

  1. $filenameにMIMEタイプを調べたいファイル名を指定します。
  2. finfo_open, finfo_file関数を使い、指定したファイル名のMIMEタイプを表示します。

実行例

bmp, jpg, zipファイルを指定し、実際に試してみます。
拡張子を変更しても正常にMIMEタイプが判別されているのが確認できます。
(つまり、ファイル内容を確認しMIMEタイプを表示している。)

PHPサンプルスクリプト

引数で渡されたファイル名のMIMEタイプを表示するサンプルスクリプトです。

<?php

if ($argc == 1) {
  echo "Usage: php $argv[0] filename ...\n";
  exit(1);
}

$finfo = finfo_open(FILEINFO_MIME_TYPE);
for ($i=1; $i<$argc; $i++) {
  $filename = $argv[$i];
  printf("filename=%s, MIME=%s\n", $argv[$i], finfo_file($finfo, $filename));
}
finfo_close($finfo);

?>

実行結果1

実行結果2

以上、finfo_fileを使ってMIMEタイプを確認する方法でした。


スポンサーリンク


添付ファイル: filemimetype.php 866件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-12 (水) 12:10:56