如何检查文件在PHP中是ASCII还是二进制
2022-08-31 00:35:51
有没有一种快速,简单的方法来检查文件是ASCII还是PHP二进制文件?
这仅适用于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';
由于ASCII只是文本的编码,具有二进制表示形式,因此实际上并非如此。您可以检查所有字节是否都小于 128,但即使这样也不能保证它打算被解码为 ASCII。据您所知,这是一些疯狂的图像格式,或者是一种完全不同的文本编码,也没有使用所有八位。不过,它可能足以供您使用。如果您只想检查文件是否有效ASCII,即使它不是“文本文件”,也绝对足够了。