【发布时间】:2023-12-30 23:43:01
【问题描述】:
有什么方法可以检测 PHP 中的 gz 文件是否损坏?
我目前正在使用http://www.php.net/manual/de/function.gzread.php#110078 来确定文件大小并通过以下方式读取整个*文件
$zd = gzopen ( $file, "r" );
$contents = gzread ( $zd, $fzip_size );
gzclose ( $zd );
很遗憾,有些 gz 文件已损坏,最后 4 个字节并不代表 gz 文件的实际长度。只要数字是负数,我就能判断出问题所在,但有时它是正数(而且非常大),这会导致内存不足错误。如果文件损坏,如何提前检查?
- 我正在读取整个文件,因为在不知道最长行的大小的情况下,我找不到逐行读取文件的可行方法 - 这会导致(在某些情况下)行不完整。李>
【问题讨论】:
-
打开时应该使用
"rb",而不是"r"。那么你可能一开始就没有问题。