Heim > Backend-Entwicklung > PHP-Tutorial > Wie ermittelt man den „Content-Type' einer Datei in PHP?

Wie ermittelt man den „Content-Type' einer Datei in PHP?

Mary-Kate Olsen
Freigeben: 2024-11-27 07:52:14
Original
628 Leute haben es durchsucht

How do you determine the `Content-Type` of a file in PHP?

Inhaltstypidentifikation in PHP verstehen

Beim Anhängen von Dateien an E-Mails ist es wichtig, den Inhaltstyp genau zu bestimmen. PHP bietet verschiedene Methoden, um dies zu erreichen.

Funktion zur Bestimmung des Inhaltstyps

Um diesem Bedarf gerecht zu werden, bietet die bereitgestellte Lösung die folgende Funktion:

function getFileMimeType($file) {
    // Attempt to use PHP finfo functions
    if (function_exists('finfo_file')) {
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $type = finfo_file($finfo, $file);
        finfo_close($finfo);
    }
    
    // Fallback to mime_content_type alternative
    else {
        require_once 'upgradephp/ext/mime.php';
        $type = mime_content_type($file);
    }
    
    // Further fallbacks if previous attempts failed
    if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) {
        // Use file command if available
        $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'))) {
        // Attempt to use exif_imagetype for images
        require_once 'upgradephp/ext/mime.php';
        $exifImageType = exif_imagetype($file);
        if ($exifImageType !== false) {
            $type = image_type_to_mime_type($exifImageType);
        }
    }
    
    return $type;
}
Nach dem Login kopieren

Funktionserklärung

Diese Funktion versucht, die Finfo-Funktion von PHP zu nutzen, um die zu identifizieren Pantomime-Typ. Wenn dies fehlschlägt, wird auf die Funktion mime_content_type zurückgegriffen. Falls beides nicht funktioniert, wird versucht, den Befehl „file“ auf *NIX-Systemen auszuführen. Schließlich wird exif_imagetype verwendet, um den Mime-Typ für Bilder zu bestimmen.

Es ist zu beachten, dass verschiedene Server unterschiedliche Unterstützung für Mime-Typ-Funktionen bieten und die Ersetzung von mime_content_type durch Upgrade.php möglicherweise nicht immer zuverlässig ist. Die exif_imagetype-Funktion tendiert jedoch dazu, serverübergreifend konsistent zu funktionieren. Wenn Sie sich ausschließlich mit Bilddateien befassen, können Sie erwägen, diese Funktion nur zur Bestimmung des MIME-Typs zu verwenden.

Das obige ist der detaillierte Inhalt vonWie ermittelt man den „Content-Type' einer Datei in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage