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