Maison >développement back-end >tutoriel php >Comment déterminer le type de contenu d'un fichier en PHP ?

Comment déterminer le type de contenu d'un fichier en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-14 12:19:02666parcourir

How to Determine the Content Type of a File in PHP?

Comment déterminer le type de contenu d'un fichier en PHP

Lors de l'envoi d'e-mails avec des pièces jointes, il est crucial de définir le bon en-tête Content-Type pour le pièce jointe pour garantir une livraison réussie et un affichage approprié. En PHP, vous pouvez utiliser la fonction file_get_contents() pour récupérer le contenu de la pièce jointe, mais déterminer le type de contenu nécessite une étape supplémentaire.

La fonction getFileMimeType()

Pour simplifier cette tâche, pensez à utiliser la fonction getFileMimeType() suivante :

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;
}

Comment cela Works

Cette fonction essaie plusieurs méthodes pour déterminer le type de contenu :

  1. finfo_file() : Si disponible, elle utilise les fonctions PHP finfo.
  2. mime_content_type() : Il revient à l'alternative mime_content_type() si finfo n'est pas disponible. Commande
  3. file : si les méthodes ci-dessus échouent, elle tente d'exécuter la commande file du système d'exploitation pour l'identification du type MIME.
  4. exif_imagetype()  : En dernier recours, il utilise exif_imagetype() pour déterminer le type MIME de images.

En utilisant une combinaison de ces méthodes, la fonction fournit un moyen robuste de récupérer le type de contenu de différents types de fichiers.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn