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

Barbara Streisand
Libérer: 2024-11-19 13:44:02
original
250 Les gens l'ont consulté

How Can I Determine the Content-Type of a File in PHP?

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

Lors de l'envoi d'un e-mail avec une pièce jointe, il est crucial de spécifier le contenu correct tapez pour ce fichier. Cela guide le client de messagerie dans la gestion appropriée du fichier. En PHP, vous pouvez récupérer le type de contenu en utilisant différentes méthodes.

Utilisation de 'finfo_file()' (Recommandé)

Si votre version PHP prend en charge l'extension finfo, vous peut utiliser 'finfo_file()' pour obtenir le type MIME du fichier. Voici un exemple :

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$contentType = finfo_file($finfo, $file);
finfo_close($finfo);
Copier après la connexion

Utilisation de 'mime_content_type()'

Une ancienne alternative à 'finfo_file()' est la fonction 'mime_content_type()'. Cependant, il se peut qu'il ne soit pas disponible dans toutes les versions de PHP.

require_once 'upgradephp/ext/mime.php'; // Load the mime extension if necessary
$contentType = mime_content_type($file);
Copier après la connexion

Options de secours

Si aucune des méthodes ci-dessus ne fournit un résultat fiable, vous pouvez envisager d'utiliser ces options de secours :

  • exec('file -b --mime-type ...') : Exécute la commande 'file' sur le fichier pour obtenir son type MIME . Cette méthode fonctionne sur les systèmes *NIX.
  • exif_imagetype() : Si le fichier est une image, cette fonction peut déterminer son type MIME.
  • 'upgradephp /ext/mime.php' : Upgrade.php fournit des fonctions de secours mime_content_type() qui peuvent combler les lacunes des anciennes versions de PHP.

Exemple d'utilisation

Voici un exemple qui combine toutes ces options :

function getFileMimeType($file) {
    $contentType = null;

    if (function_exists('finfo_file')) {
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $contentType = finfo_file($finfo, $file);
        finfo_close($finfo);
    } elseif (function_exists('mime_content_type')) {
        require_once 'upgradephp/ext/mime.php';
        $contentType = mime_content_type($file);
    } elseif (is_file($file)) {
        // Executing 'file' command
    } elseif (@exif_imagetype($file)) {
        // Determining image mime type
    }

    return $contentType;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal