ホームページ >バックエンド開発 >PHPチュートリアル >PHP でファイルのコンテンツ タイプを確実に判断する方法

PHP でファイルのコンテンツ タイプを確実に判断する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-15 05:26:02617ブラウズ

How to Reliably Determine File Content-Type in PHP?

PHP でのファイルのコンテンツ タイプの決定

PHP では、ファイルをファイルとして送信するときにファイルのコンテンツ タイプを決定することが不可欠です。電子メールの添付ファイル。これにより、正しい MIME タイプがヘッダーに指定され、受信ソフトウェアがファイルを適切に処理できるようになります。

Content-Type の取得

推奨されるアプローチは次のとおりです。 getFileMimeType() 関数を利用します:

function getFileMimeType($file) {
    if (function_exists('finfo_file')) {
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $type = finfo_file($finfo, $file);
        finfo_close($finfo);
    } else {
        require_once 'upgradephp/ext/mime.php';
        $type = mime_content_type($file);
    }

    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        $secondOpinion = exec('file -b --mime-type ' . escapeshellarg($file), $foo, $returnCode);
        if ($returnCode === 0 && $secondOpinion) {
            $type = $secondOpinion;
        }
    }

    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        require_once 'upgradephp/ext/mime.php';
        $exifImageType = exif_imagetype($file);
        if ($exifImageType !== false) {
            $type = image_type_to_mime_type($exifImageType);
        }
    }

    return $type;
}

この関数は、さまざまな方法を使用してコンテンツ タイプを決定しようとします。以下を含みます:

  • PHP の finfo 関数 (利用可能な場合)
    Upgrade.php ライブラリの *mime_content_type()
  • OS のファイル コマンド (*NIX システムの場合)
  • 画像ファイルの exif_imagetype()

この関数は、複数の方法を利用して、オペレーティング システムや PHP 環境に関係なく、正しいコンテンツ タイプを取得するための信頼できるソリューションを提供します。

以上がPHP でファイルのコンテンツ タイプを確実に判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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