Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich den Inhaltstyp einer Datei in PHP bestimmen?

Wie kann ich den Inhaltstyp einer Datei in PHP bestimmen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-19 13:44:02236Durchsuche

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

Bestimmen des Inhaltstyps einer Datei in PHP

Beim Versenden einer E-Mail mit Anhang ist es wichtig, den richtigen Inhalt anzugeben Typ für diese Datei. Dadurch wird der E-Mail-Client bei der ordnungsgemäßen Handhabung der Datei angeleitet. In PHP können Sie den Inhaltstyp mit verschiedenen Methoden abrufen.

Verwendung von „finfo_file()“ (empfohlen)

Wenn Ihre PHP-Version die Finfo-Erweiterung unterstützt, können Sie kann „finfo_file()“ verwenden, um den Mime-Typ der Datei zu ermitteln. Hier ist ein Beispiel:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$contentType = finfo_file($finfo, $file);
finfo_close($finfo);

Verwendung von „mime_content_type()“

Eine ältere Alternative zu „finfo_file()“ ist die Funktion „mime_content_type()“. Es ist jedoch möglicherweise nicht in allen PHP-Versionen verfügbar.

require_once 'upgradephp/ext/mime.php'; // Load the mime extension if necessary
$contentType = mime_content_type($file);

Fallback-Optionen

Wenn keine der oben genannten Methoden ein zuverlässiges Ergebnis liefert, können Sie die Verwendung in Betracht ziehen diese Fallback-Optionen:

  • exec('file -b --mime-type ...'): Führt den Befehl „file“ für die Datei aus, um ihren Mime-Typ zu erhalten. Diese Methode funktioniert auf *NIX-Systemen.
  • exif_imagetype(): Wenn es sich bei der Datei um ein Bild handelt, kann diese Funktion ihren MIME-Typ bestimmen.
  • 'upgradephp /ext/mime.php': Upgrade.php bietet Fallback-mime_content_type()-Funktionen, die die Lücken für älteres PHP schließen können Versionen.

Beispielverwendung

Hier ist ein Beispiel, das alle diese Optionen kombiniert:

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

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