レンタルサーバ SAKURA で

phpを使用して、ファイルのMIME TYPEを取得する方法を教えて下さい。

echo mime_content_type($path);
は使えませんでした。

$info = new FInfo(FILEINFO_MIME_TYPE);
echo $info->file($path);
これもだめでした。

$info = getImageSize($path);
echo $info['mime'];
これは画像しかダメです。

mime_content_type
これを使った場合の結果と同じように
ほとんどのファイルのmime typeを取得出来ることを望んでいます。
よろしくお願いします。

フォームからアップロードしたファイルのではなく
サーバにあるファイルの取得方法でお願いします。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2011/03/31 16:57:38
  • 終了:2011/04/07 17:00:04

回答(1件)

id:bayan No.1

bayan回答回数100ベストアンサー獲得回数132011/04/01 07:49:29

ポイント60pt

mime_content_type のマニュアルページの下のほうに、

同様の関数を自前で実装する例があります。

これらを試してみてはどうでしょうか。

http://php.net/manual/ja/function.mime-content-type.php

例えば一番上の記事。

<?php 
function get_mime_type($filename, $mimePath = '../etc') { 
   $fileext = substr(strrchr($filename, '.'), 1); 
   if (empty($fileext)) return (false); 
   $regex = "/^([\w\+\-\.\/]+)\s+(\w+\s)*($fileext\s)/i"; 
   $lines = file("$mimePath/mime.types"); 
   foreach($lines as $line) { 
      if (substr($line, 0, 1) == '#') continue; // skip comments 
      $line = rtrim($line) . " "; 
      if (!preg_match($regex, $line, $matches)) continue; // no match to the extension 
      return ($matches[1]); 
   } 
   return (false); // no match at all 
} 
?>
id:worldtravel

ありがとうございます。

教えて頂いた関数では結果を得られませんでしたが、

その下に書かれていた関数で得られました。

もっと短い新しい関数があるのかなと思ったのですが

やはり書かなければダメなのですね。

2011/04/01 09:14:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません