php – 如何让ZipArchive不会覆盖某些文件和文件夹
发布时间:2020-12-13 21:37:35 所属栏目:PHP教程 来源:网络整理
导读:我想将一个zip文件夹解压缩到一个位置,并替换除少数文件和文件夹之外的所有文件和文件夹,我该怎么做? 我目前正在做以下事情. $backup = realpath('./backup/backup.zip');$zip = new ZipArchive();if ($zip-open("$backup",ZIPARCHIVE::OVERWRITE) !== TRUE
我想将一个zip文件夹解压缩到一个位置,并替换除少数文件和文件夹之外的所有文件和文件夹,我该怎么做?
我目前正在做以下事情. $backup = realpath('./backup/backup.zip'); $zip = new ZipArchive(); if ($zip->open("$backup",ZIPARCHIVE::OVERWRITE) !== TRUE) { die ('Could not open archive'); } $zip->extractTo('minus/'); $zip->close(); 如何为不应替换的文件和文件夹添加条件?如果可以使用某种循环那将是很好的. 谢谢大家的帮助 解决方法
你可以这样做,我测试了它,它适用于我:
// make a list of all the files in the archive $entries = array(); for ($idx = 0; $idx < $zip->numFiles; $idx++) { $entries[] = $zip->getNameIndex($idx); } // remove $entries for the files you don't want to overwrite // only extract the remaining $entries $zip->extractTo('minus/',$entries); 此解决方案基于numFiles属性和getNameIndex方法,即使存档结构化为子文件夹(条目看起来像/folder/subfolder/file.ext)也可以使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |