1. 简介
在我们开发PHP应用时,经常需要获取文件的mimes类型,这对于调试或者编写文件上传功能时非常必要。因此,今天我们就来介绍一下PHP实现的获取文件mimes类型工具类。
2. 工具类示例
2.1. 实现原理
利用PHP内置的FileInfo类可以很方便地获取文件的mimes类型。当我们构造一个FileInfo类并指定文件路径时,FileInfo会利用系统中的magic文件来判断文件类型。magic文件是一个文件符号,其中包含了许多规则来描述文件类型。FileInfo会通过解析这些规则来判断文件类型。
当然,由于不同系统magic文件的位置不一样,因此我们还需要设置magic文件的路径来保证正确的解析。
2.2. 工具类核心代码
class MimeDetector
{
/**
* 获取文件mimes类型
*
* @param string $file 文件路径
* @param string $magic_path magic路径
* @return string 文件mimes类型
*/
public static function detectMimeType($file, $magic_path = null)
{
if (!is_file($file)) {
throw new \Exception('File not exists!');
}
$finfo = new \finfo(FILEINFO_MIME_TYPE, $magic_path);
return $finfo->file($file);
}
}
3. 工具类使用
使用该工具类非常方便,只需要调用detectMimeType静态方法并传入文件路径即可:
$mimeType = MimeDetector::detectMimeType('/path/to/file');
其中,第二个参数为可选参数,可以指定magic文件的路径。
4. 总结
本文介绍了一款PHP实现的获取文件mimes类型工具类,它利用PHP内置的FileInfo类来实现,具有使用简单、功能实用等优点。在我们的PHP应用中,如果需要获取文件的mimes类型,可以考虑采用该工具类。