如何检查文件在PHP中是ASCII还是二进制

php
2022-08-31 00:35:51

有没有一种快速,简单的方法来检查文件是ASCII还是PHP二进制文件?


答案 1

这仅适用于PHP>= 5.3.0,并且不是100%可靠,但是嘿,它非常接近。

// return mime type ala mimetype extension
$finfo = finfo_open(FILEINFO_MIME);

//check to see if the mime-type starts with 'text'
return substr(finfo_file($finfo, $filename), 0, 4) == 'text';

http://us.php.net/manual/en/ref.fileinfo.php


答案 2

由于ASCII只是文本的编码,具有二进制表示形式,因此实际上并非如此。您可以检查所有字节是否都小于 128,但即使这样也不能保证它打算被解码为 ASCII。据您所知,这是一些疯狂的图像格式,或者是一种完全不同的文本编码,也没有使用所有八位。不过,它可能足以供您使用。如果您只想检查文件是否有效ASCII,即使它不是“文本文件”,也绝对足够了。


推荐