PHP中如何获取文件类型

Tal*_*kir 1 php

我有一个.doc文件,我将其重命名为扩展名.jpg。当我使用我的函数处理重命名的文件时,它接受该文件作为具有 a 的文件,.jpg尽管该文件实际上并不是 JPEG。查找实际文件类型的最佳方法是什么?这是我当前的代码:

function getExtension($str) {
   $i = strrpos($str,".");
   if (!$i) { return ""; }
   $l = strlen($str) - $i;
   $ext = substr($str,$i+1,$l);
   return $ext;
}
Run Code Online (Sandbox Code Playgroud)

在不依赖扩展名的情况下检查文件类型的最佳方法是什么?

scr*_*ble 5

您可以使用 PHP 的Fileinfo根据文件内容来检测文件类型;但是,它仅在 PHP 5.3.0 中可用或者您有权安装 PECL 扩展。

它返回文件的 mime 类型,例如 text/html、image/gif 或 application/vnd.ms-excel,这应该更准确(考虑可能具有多个常见扩展名的内容,例如:jpg、jpe、jpeg) 。