Heim >Backend-Entwicklung >PHP-Tutorial >Wie bestimme ich den Inhaltstyp einer Datei in PHP?

Wie bestimme ich den Inhaltstyp einer Datei in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-11-14 12:19:02674Durchsuche

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

So bestimmen Sie den Dateiinhaltstyp in PHP

Beim Senden von E-Mails mit Anhängen ist es wichtig, den richtigen Content-Type-Header für festzulegen Anhang, um eine erfolgreiche Lieferung und ordnungsgemäße Anzeige zu gewährleisten. In PHP können Sie die Funktion file_get_contents() verwenden, um den Inhalt des Anhangs abzurufen, die Bestimmung des Inhaltstyps erfordert jedoch einen zusätzlichen Schritt.

Die Funktion getFileMimeType()

Um diese Aufgabe zu vereinfachen, sollten Sie die folgende getFileMimeType()-Funktion verwenden:

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

Wie es funktioniert Funktioniert

Diese Funktion probiert mehrere Methoden aus, um den Inhaltstyp zu bestimmen:

  1. finfo_file(): Falls verfügbar, verwendet sie die PHP-Finfo-Funktionen.
  2. mime_content_type(): Es greift auf die Alternative mime_content_type() zurück, wenn finfo ist nicht verfügbar.
  3. file-Befehl: Wenn die oben genannten Methoden fehlschlagen, wird versucht, den Dateibefehl des Betriebssystems zur Identifizierung des MIME-Typs auszuführen.
  4. exif_imagetype( ): Als letzten Ausweg wird exif_imagetype() verwendet, um den Mime-Typ für zu bestimmen Bilder.

Durch die Verwendung einer Kombination dieser Methoden bietet die Funktion eine robuste Möglichkeit, den Inhaltstyp verschiedener Dateitypen abzurufen.

Das obige ist der detaillierte Inhalt vonWie bestimme ich den Inhaltstyp einer Datei in PHP?. 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