gorden
7.08.2014, 16:38:14
Witam, nigdy nie bawiłem się w to a na pierwszy rzut oka w google nie ma żadnych gotowców, więc może ktoś tutaj ma opanowany temat.
A więc, mam plik a.zip, a w nim katalog b, w którym znajdują się pliki (bez katalogów). Chciałbym zawartość tego katalogu zapisać w postaci b.zip
Najlepiej jakby rozwiązanie korzystało z czystego PHP, może używać większej ilości zasobów ponieważ ta operacja nie będzie przeprowadzania zbyt często
trueblue
7.08.2014, 17:46:28
$zip=new ZipArchive;
$source='a.zip';
$dest='b.zip';
if($zip->open($source)===true){
for($i=0;$i<$zip->numFiles;$i++){
$entry=$zip->getNameIndex($i);
if(strpos($entry,"b/")!==false) $files[]=$entry;
}
$zip->extractTo('.',$files);
$zip->close();
if($zip->open($dest,ZIPARCHIVE::CREATE)===true){
foreach($files as $file){
}
$zip->close();
}
else{
}
}
else{
}
Nie usuwa wypakowanego katalogu "b".
Crozin
7.08.2014, 17:48:14
6http://php.net/manual/en/book.zip.php - to powinno załatwi wszystko. Przy pomocy tej klasy odczytasz istniejące archiwum i utworzysz nowe z nową strukturą.