当使用 php zip 类提取 zip 文件时(实际上它很糟糕,但谁知道呢?),
$ unzip -t 1.zip
file #47: bad zipfile offset (local header sig): 574665
...
At least one error was detected in 1.zip.
<?php
function unzip($apkpath, $dirname) { //
$zip = new ZipArchive;
$res = $zip->open($apkpath);
if ($res === TRUE) {
$zip->extractTo($dirname);
$zip->close();
return true;
} else {
return false;
}
}
unzip('com.nd.sms.zip', '2'); // It's ok
//unzip('1.zip', '2'); //this line go into infinite loop and very heigh cpu
unzip('com.nd.sms.zip', '2');
?>
任何人都知道如何安全地使用 ZipArchive,或其他扩展替换,或某种方式来检查 zip 文件是否有效?
另外,我用的是php5.3.14+ubuntu。
我知道,
https ://bugs.php.net/bug.php?id=53230
https://bugs.php.net/bug.php?id=57905