php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】

发布时间 - 2026-01-11 00:42:11    点击率:

本文实例讲述了php实现不通过扩展名准确判断文件类型的方法。分享给大家供大家参考,具体如下:

第一种方法

通过php的finfo_file()

$handle=finfo_open(FILEINFO_MIME_TYPE);//This function opens a magic database and returns its resource. 
$fileInfo=finfo_file($handle,'./test.txt');// Return information about a file
finfo_close($handle);
print_r($fileInfo);
echo '==========="\n"';

另外

finfo_buffer: Return information about a string buffer
finfo_close: Close fileinfo resource
mime_content_type:Detect MIME Content-type for a file (deprecated)

第二种方法

通过二进制流获取文件内容

$fp=fopen('test.txt','r')///实际是image/png
$bin = fread($fp, 2); //只读2字节
fclose($fp);
$str_info = @unpack(“C2chars”, $bin);//Unpack data from binary string
$type_code = intval($str_info['chars1'].$str_info['chars2']);// Get the integer value of a variable
$file_type = ”;
switch ($type_code) {
case 7790:
$file_type = 'exe';
break;
case 7784:
$file_type = 'midi';
break;
case 8075:
$file_type = 'zip';
break;
case 8297:
$file_type = 'rar';
break;
case 255216:
$file_type = 'jpg';
break;
case 7173:
$file_type = 'gif';
break;
case 6677:
$file_type = 'bmp';
break;
case 13780:
$file_type = 'png';
break;
default:
$file_type = 'unknown';
break;
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# php  # 扩展名  # 判断  # 文件类型  # finfo_file  # 二进制流  # PHP中获取文件扩展名的N种方法小结  # php获取文件名称和扩展名的方法  # PHP获取文件扩展名的4种方法  # php更改目录及子目录下所有的文件后缀扩展名的代码  # php获得文件扩展名三法  # php文件扩展名判断及获取文件扩展名的N种方法  # php从给定url获取文件扩展名的方法  # PHP获取文件扩展名的方法实例总结  # PHP实现的获取文件mimes类型工具类示例  # php准确获取文件MIME类型的方法  # php实现获取文件mime类型的方法  # PHP获取文件扩展名的常用方法小结【五种方式】  # 种方法  # 程序设计  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 所述  # 面向对象  # 不通过  # 操作技巧  # 编程技巧  # 讲述了  # finfo_close  # file  # print_r  # span  # echo  # test  # fileInfo 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信推文制作网站有哪些,怎么做微信推文,急?  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  如何在建站之星绑定自定义域名?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  活动邀请函制作网站有哪些,活动邀请函文案?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Python进程池调度策略_任务分发说明【指导】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何用PHP快速搭建高效网站?分步指南  无锡营销型网站制作公司,无锡网选车牌流程?  高端建站如何打造兼具美学与转化的品牌官网?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  百度浏览器如何管理插件 百度浏览器插件管理方法  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何快速搭建自助建站会员专属系统?  高端建站三要素:定制模板、企业官网与响应式设计优化  ,在苏州找工作,上哪个网站比较好?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel如何使用Blade组件和插槽?(Component代码示例)  如何快速上传建站程序避免常见错误?  如何用PHP工具快速搭建高效网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  济南网站建设制作公司,室内设计网站一般都有哪些功能?  大同网页,大同瑞慈医院官网?  如何自定义建站之星模板颜色并下载新样式?  Laravel怎么实现验证码(Captcha)功能  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  如何将凡科建站内容保存为本地文件?  Python面向对象测试方法_mock解析【教程】  Android Socket接口实现即时通讯实例代码  实例解析Array和String方法  原生JS获取元素集合的子元素宽度实例