如何在不知道扩展名的情况下检查文件是否已存档(zip或rar)。我需要使用php找到它。
我无法使用Fileinfo,因为没有安装Fileinfo,并且无法在服务器上安装任何其他软件包。
更新:
zip 模块未安装,我无法安装额外的软件包。
我不想使用mime_content_type,因为它已弃用
谢谢
最佳答案
od -c
的输出:
0000000 R a r ! 032 \a \0 317 220 s \0 \0 \r \0 \0 \0
0000000 P K 003 004 \n \0 \0 \0 \0 \0 \0 \0 ! \0 \0 \0
您可以使用以下方式:
<?php
$fh = @fopen($argv[1], "r");
if (!$fh) {
print "ERROR: couldn't open file.\n";
exit(126);
}
$blob = fgets($fh, 5);
fclose($fh);
if (strpos($blob, 'Rar') !== false) {
print "Looks like a Rar.\n";
} else
if (strpos($blob, 'PK') !== false) {
print "Looks like a ZIP.\n";
} else {
print "I dunno.\n";
exit(1);
}
?>
和我的输出:
ghoti@baz:~ 423$ ./filephp.php A2.rar
Looks like a Rar.
ghoti@baz:~ 424$ ./filephp.php OLDIE.zip
Looks like a ZIP.
ghoti@baz:~ 425$ ./filephp.php 1-11-1.PDF
I dunno.
ghoti@baz:~ 426$
关于php - 使用php检查文件是否已存档(zip或rar),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9098678/