PHP取二进制文件头快速判断文件类型的实现代码
识别文件真实类型的正确方式并非仅仅依赖于文件的扩展名,因为这种方式极易被误导。要想准确识别文件类型,我们必须深入读取文件头信息。狼蚁网站的SEO优化代码中就展示了这样的操作。
PHP为我们提供了强大的工具来处理这种任务,但有时候这些工具可能并未安装或无法应对所有情况。我们需要自行编写代码来识别文件类型。以下是一个生动且详细的示例。
代码示例:
使用PHP遍历指定路径下的文件,通过读取文件头信息来识别文件的真实类型。代码片段如下:
```php
$files = array(
'c:\1.jpg',
'c:\1.png',
'c:\1.gif',
'c:\1.rar',
'c:\1.zip',
'c:\1.exe',
);
foreach ($files as $file) {
$fp = fopen($file, "rb"); // 以二进制读取模式打开文件
$bin = fread($fp, 2); // 读取文件头前两个字节
fclose($fp); // 关闭文件句柄
$str_info = @unpack("C2chars", $bin); // 解包二进制数据
$type_code = intval($str_info['chars1'].$str_info['chars2']); // 组合字节得到类型码
$file_type = ''; // 初始化文件类型变量
switch ($type_code) { // 根据类型码判断文件类型
case 7790: // exe文件的标识码
$file_type = 'exe';
break;
case 7784: // midi文件的标识码
$file_type = 'midi';
break;
// 其他文件类型的标识码...省略...(例如zip、rar等)... 省略中间代码 ... // // 根据不同的标识码确定不同的文件格式并赋值给$file_type变量。此代码片段详细展示了如何操作。代码输出每个文件的类型和对应的类型码。这一简洁明了的示例,不仅展示了如何通过读取文件头信息来识别文件类型,还通过友好的用户界面展示了识别结果。无论是图片、音频、压缩文件还是可执行文件,这段代码都能轻松应对,为我们提供了强大的文件类型识别功能。对于不熟悉文件头标识码的开发者或爱好者来说,这无疑是一个宝贵的参考资源。通过此代码,我们能更深入地理解如何通过编程手段准确识别文件类型,为各种应用提供坚实的基础。本例还展示了良好的错误处理机制,通过@符号抑制可能的错误提示,确保程序的稳定运行。
编程语言
- PHP取二进制文件头快速判断文件类型的实现代码
- PHP常见的序列化与反序列化操作实例分析
- javascript实现回到顶部特效
- BootStrap selectpicker
- JavaScript中常见获取元素的方法汇总
- 如何用ASP发送带附件的邮件?
- linux命令之调试工具strace的深入分析
- WEB在模态窗体里导出或下载文件功能代码
- SQLServer设置客户端使用IP地址登录的图文详解
- php的优点总结 php有哪些优点
- ASP.NET Repeater 单双行数据换色示例
- 详解CentOS6.5 安装 MySQL5.1.71的方法
- 实例讲解php实现多线程
- 云服务器Ubuntu_Server_16.04.1安装MySQL并开启远程连接
- 在dropDownList中实现既能输入一个新值又能实现下
- vue里面父组件修改子组件样式的方法