你可以尝试这样的PHP >= 5.5
:
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
if(pathinfo($zip->getNameIndex($i)['extension'] != "php")){
$zip->extractTo('/my/destination/dir/', $zip->getNameIndex($i));
}
}
$zip->close();
}
或者这样的PHP < 5.5
:
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$path_info = pathinfo($zip->getNameIndex($i));
$ext = $path_info['extension'];
if($ext != "php")){
$zip->extractTo('/my/destination/dir/', $zip->getNameIndex($i));
}
}
$zip->close();
}
两者之间的唯一区别是pathinfo
功能。两者都会循环zip文件中的所有文件,并且如果文件扩展名不是php
,则将其提取到/my/destination/dir/
。
[用PHP打开和创建密码保护的zip文件]可能的副本(http://stackoverflow.com/questions/7712960/opening-and-creating-password-protected-zip-files-with-php ) – Parixit
@Pixixit这是如何复制的? –
@PedroLobito我认为这是关于安全的zip,因为他要求不要提取“php”文件 – Parixit