Menentukan Jenis Kandungan Fail untuk Lampiran E-mel dalam PHP
Dalam PHP, menghantar e-mel dengan lampiran fail memerlukan menyatakan jenis kandungan fail tersebut. Maklumat ini membolehkan klien e-mel mentafsir dan memaparkan lampiran dengan betul. Artikel ini membincangkan cara untuk menetapkan pembolehubah $the_content_type dengan betul untuk tujuan ini.
Penyelesaian:
Satu pendekatan melibatkan penggunaan fungsi getFileMimeType(), yang menggunakan satu siri sandaran untuk mengendalikan versi PHP yang berbeza dan jenis mime yang tidak boleh dipercayai fungsi:
function getFileMimeType($file) { // Try finfo_file if (function_exists('finfo_file')) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $type = finfo_file($finfo, $file); finfo_close($finfo); } // Try mime_content_type else { require_once 'upgradephp/ext/mime.php'; $type = mime_content_type($file); } // Check for unreliable results if (!$type || in_array($type, array('application/octet-stream', 'text/plain'))) { // Try file command (only available on *NIX systems) $secondOpinion = exec('file -b --mime-type ' . escapeshellarg($file), $foo, $returnCode); if ($returnCode === 0 && $secondOpinion) { $type = $secondOpinion; } } // Try exif_imagetype for images 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; }
Fungsi ini secara berurutan mencuba fungsi fifo_file, mime_content_type, arahan fail dan exif_imagetype untuk menentukan jenis kandungan. Jika salah satu kaedah ini mengembalikan hasil yang boleh dipercayai, kaedah ini digunakan. Jika tidak, fungsi ini mengembalikan jenis kandungan sandaran.
Setelah jenis kandungan ditentukan, anda boleh menetapkan pembolehubah $the_content_type seperti berikut:
$the_content_type = getFileMimeType($filepath);
Pendekatan ini menyediakan yang mantap penyelesaian untuk menentukan jenis kandungan pelbagai jenis fail dalam PHP, memastikan lampiran e-mel anda dipaparkan dengan betul oleh pelanggan e-mel.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Jenis Kandungan Lampiran E-mel dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!