ホームページ >バックエンド開発 >PHPチュートリアル >ファイルが MP3 か画像かを確実に判断するにはどうすればよいですか?

ファイルが MP3 か画像かを確実に判断するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 06:25:28553ブラウズ

How to Reliably Determine if a File is an MP3 or an Image?

ファイル タイプの決定: mp3 または Image

ファイルのタイプの決定は、さまざまなアプリケーションにとって重要であり、ファイルの拡張子を調べることで実現できます。ただし、拡張子が誤解を招く可能性があるか、拡張子が存在しない可能性があるため、この方法には制限があります。ファイル タイプを正確に確実に識別するには、別のアプローチが必要です。

ネイティブ MimeType 検出

PHP には、ファイルの MIME タイプを取得するための組み込み関数が用意されています。使用する適切な関数は PHP のバージョンによって異なります。

  • PHP < 5.3: mime_content_type()
  • PHP >= 5.3: finfo_fopen()

これらの関数は、magic.mime データベースを利用して、ファイルの内容に基づいてファイルの MIME タイプを決定します。このデータベースには、ファイル署名と MIME タイプ間のマッピングが含まれています。

代替方法

ファイル タイプの識別に役立つ追加関数には、exif_imagetype および getimagesize があります。ただし、これらはインストールされている特定のライブラリに依存しており、主に画像ファイルの検出に適しています。

関数の結合

システムの可用性を確認する手間を避けるために、プロキシメソッドを使用して、利用可能なすべての関数をカプセル化し、最も適切な関数にタスクを委任できます。

<code class="php">function getMimeType($filename)
{
    $mimetype = false;
    if(function_exists('finfo_fopen')) {
        // open with FileInfo
    } elseif(function_exists('getimagesize')) {
        // open with GD
    } elseif(function_exists('exif_imagetype')) {
       // open with EXIF
    } elseif(function_exists('mime_content_type')) {
       $mimetype = mime_content_type($filename);
    }
    return $mimetype;
}</code>

これらのアプローチを利用することで、ファイルが mp3 オーディオ ファイルであるか画像ファイルであるかを効果的に判断できます。拡張子に関係なく。

以上がファイルが MP3 か画像かを確実に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。