最近远程拉取并解压文件 使用ZipArchive 开始没有问题,后来文件多了,发现只有一些空文件
$zip->extractTo($path); 居然出错了。
以下是方法
function unzipNew($filePath, $topath)
{
if (empty($topath) || empty($filePath)) {
return false;
}
$zip = new \ZipArchive();
if ($zip->open($filePath) === true) {
if(true){
for($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
$t = explode('.',$filename);
if(count($t) == 2){
$s = $zip->getStream($filename);
$data = stream_get_contents($s);
file_put_contents($topath.'/'.$filename, $data);
}else{
@mkdir($topath.'/'.$filename, 0777);
}
}
}
$zip->close();
return true;
} else {
return false;
}
}