2016-07-16 4 views
0

Я использую функцию php ziparchive для открытия zip-файла и хочу перечислить все подпапки папки, находящейся в zip-файле. Например ... World.zip содержит страну папки, Foo & бар и я хочу перечислить имена всех состояний папки этой папки страны, но не обув & барКак перечислить вложенные папки папки в zip-файле без извлечения?

+0

Я попытался $ zipFile-> locateName (складка ername), но не работает. @Ares – Mihir

ответ

0

я нашел note по руководствам который я получил большую часть кода из , который зависит от зацикливания через общее количество файлов

и я реструктурировать его в соответствии с вашими потребностями и вот код после рефакторинга

<?php 
$filePath = 'zip/file.zip'; 

$za = new ZipArchive(); 
if ($za->open($filePath) !== true) { // check for the zip archive 
    echo "archive doesn't exist or it's on Read-only mode "; 
} else { 

    $Tree = $pathArray = array(); //empty arrays 

    for ($i = 0; $i < $za->numFiles; $i++) { 

     $path = $za->getNameIndex($i); 
     $pathBySlash = array_values(explode('/', $path)); 
     $c = count($pathBySlash); 
     $temp = &$Tree; 
     for ($j = 0; $j < $c - 1; $j++) 
      if (isset($temp[$pathBySlash[$j]])) 
       $temp = &$temp[$pathBySlash[$j]]; 
      else { 
       $temp[$pathBySlash[$j]] = array(); 
       $temp = &$temp[$pathBySlash[$j]]; 
      } 
     if (substr($path, -1) == '/') 
      $temp[$pathBySlash[$c - 1]] = array(); 
     else 
      $temp[] = $pathBySlash[$c - 1]; 
    } 

    $array = $Tree['folder_name_to_list_its_files']; 

    // First style of Displaying 
    echo "<pre>"; 
    print_r($array); 

    // Second style of Displaying 
    foreach ($array as $key => $value) { 
     foreach ($value as $val) { 
      echo $key . " | " . $val . "<br /> \n"; 
     } 
    } 

    echo "</pre>"; 
} 
+0

листинг всех файлов? – Mihir

+0

перечисляет всю папку и все папки внутри этой папки –

+0

Спасибо. Можете ли вы изменить это, чтобы перечислить все подпапки (только верхнего уровня) только в определенной папке? – Mihir

Смежные вопросы