mime_content_type()
廃止されました。
この非推奨のメソッドまたは拡張子を使用せずMIME type
に、ローカル ファイルのを見つけるにはどうすればよいですか?PHP5
PECL fileinfo
編集:それが私が恐れていたものです。常に利用できるとは限らない拡張機能を必要とする組み込み関数を優先して、組み込み関数を非推奨にしたことは残念です。
fileinfo 拡張子を使用できず、mime_content_type を使用したくない場合、選択肢は限られています。
ほとんどの場合、ファイル拡張子に基づいてルックアップを行う必要があります。mime_content_type はもう少し知的なことを行い、実際にファイル内の特別なデータを探して MIME タイプを決定しました。
getID3()ライブラリは、ほとんどの場合、迅速かつ簡単に機能するオプションです。もともと MP3 ID3 データを取得するプロジェクトにちなんで名付けられたこのライブラリは、それよりもはるかに多くのことを行い、あらゆる種類の一般的または奇妙なファイル メタデータ タスクに非常に便利です。
私はこれを使用して、オンラインの画像およびビデオ ツール用の MIME タイプのファイルを取得しました。私が行ったすべてのテストで、getID3 が MIME タイプを間違っているのを見たことがありません。
また、QuickTime ビデオにストリーミングのヒントがあるかどうかを確認するためにも使用しました。汎用性の例としてこれを挙げます。
もう 1 つの時間のかかるオプションは、既に提案されているように、独自の MIME タイプ チェッカーを作成することです。MIME マジック ファイルがある場合、ファイル データの最初の n バイトを、MIME マジック ファイルから派生した MIME タイプのルックアップ テーブルの最初の n バイトと比較することにより、ファイル拡張子のルックアップよりも少し先に進むことができます。
典型的な MIME マジック ファイルには、500 セットを超える MIME タイプが含まれているため、比較が遅くなる可能性があります (多数のチェックを行う必要があります)。ホームロール ソリューションで最も一般的な 10 の MIME タイプ チェックをハードコーディングすると、その解決に役立ちます。