PHP:如何检查gz文件是否已损坏?

时间:2014-02-03 10:19:03

标签: php gzip corrupt gz

有没有办法检测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文件的实际长度。只要数字是否定的,我就能告诉某些事情是错的,但有时它是正面的(而且非常大)会导致内存不足的错误。如果文件已损坏,我该如何提前检查?

  • 我正在阅读整个文件,因为我发现没有工作方式逐行读取文件而不知道最长行的大小 - 这导致(在某些情况下)不完整的行。

1 个答案:

答案 0 :(得分:0)

如果你可以使用linux gzip命令,那么查找文件是否错误将非常简单。如果文件有效, gzip -t 将不会显示任何消息。

if (`gzip -t $file 2>&1`) {
    echo "An error occured";
}