Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man den Dateiinhaltstyp in PHP zuverlässig bestimmen?

Wie kann man den Dateiinhaltstyp in PHP zuverlässig bestimmen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-15 05:26:02627Durchsuche

How to Reliably Determine File Content-Type in PHP?

Bestimmen des Dateiinhaltstyps in PHP

In PHP ist es wichtig, den Inhaltstyp einer Datei zu bestimmen, wenn Sie sie als senden E-Mail-Anhang. Dadurch wird sichergestellt, dass der richtige MIME-Typ im Header angegeben wird, sodass die empfangende Software die Datei ordnungsgemäß verarbeiten kann.

Erhalten des Inhaltstyps

Der empfohlene Ansatz ist: Verwenden Sie die Funktion 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;
}

Diese Funktion versucht, den Inhaltstyp mithilfe verschiedener Methoden zu bestimmen. einschließlich:

  • PHPs Finfo-Funktionen (falls verfügbar)
    *mime_content_type() aus der Upgrade.php-Bibliothek
  • Der Dateibefehl des Betriebssystems (für *NIX-Systeme)
  • exif_imagetype() für Bilddateien

Durch die Verwendung mehrerer Methoden bietet diese Funktion eine zuverlässige Lösung zum Erhalten des richtigen Inhaltstyps, unabhängig vom Betriebssystem oder der PHP-Umgebung.

Das obige ist der detaillierte Inhalt vonWie kann man den Dateiinhaltstyp in PHP zuverlässig bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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