删除php中的zip文件夹

VKG*_*KGS 4 php zip

我有一个zip文件(skins.zip)的结构,

黄色
| _resources
| _theme
| _codes

我需要在skins.zip中删除名为"theme"的文件夹.我尝试过以下代码,但没有奏效.

yellow  
  |_resources  
  |_theme  
  |_codes
Run Code Online (Sandbox Code Playgroud)

有人帮帮我,谢谢!

Tah*_*ksu 6

刚刚写了这个,留下调试print_r给你以了解发生了什么,这里:

$z = new ZipArchive;
$folder_to_delete = "gifresizer/resized/";  //folder to delete relative to root
if($z->open("gifresizer.zip")===TRUE){      //zip file name
    print_r($z);
    for($i=0;$i<$z->numFiles;$i++){
        $entry_info = $z->statIndex($i);
        print_r($entry_info);
        if(substr($entry_info["name"],0,strlen($folder_to_delete))==$folder_to_delete){
            $z->deleteIndex($i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并将其余部分留给代码.

它输出这样的东西:

ZipArchive Object
(
    [status] => 0
    [statusSys] => 0
    [numFiles] => 10
    [filename] => C:\xampp\htdocs\test\zipdelete\gifresizer.zip
    [comment] => 
)
Array
(
    [name] => gifresizer/
    [index] => 0
    [crc] => 0
    [size] => 0
    [mtime] => 1339360746
    [comp_size] => 0
    [comp_method] => 0
)
Array
(
    [name] => gifresizer/frames/
    [index] => 1
    [crc] => 0
    [size] => 0
    [mtime] => 1328810540
    [comp_size] => 0
    [comp_method] => 0
)
Array
(
    [name] => gifresizer/gifresizer.php
    [index] => 2
    [crc] => 1967518989
    [size] => 18785
    [mtime] => 1328810430
    [comp_size] => 3981
    [comp_method] => 8
)

etc..
Run Code Online (Sandbox Code Playgroud)