Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][ZIP] Pakowanie zapakowanego katalogu
Forum PHP.pl > Forum > Gotowe rozwiązania
gorden
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
  1. $zip=new ZipArchive;
  2. $files=array();
  3. $source='a.zip';
  4. $dest='b.zip';
  5. if($zip->open($source)===true){
  6. for($i=0;$i<$zip->numFiles;$i++){
  7. $entry=$zip->getNameIndex($i);
  8. if(strpos($entry,"b/")!==false)
  9. $files[]=$entry;
  10. }
  11. $zip->extractTo('.',$files);
  12. $zip->close();
  13.  
  14. if($zip->open($dest,ZIPARCHIVE::CREATE)===true){
  15. foreach($files as $file){
  16. if(!is_dir($file))
  17. $zip->addFile($file,str_replace("b/","",$file));
  18. }
  19. $zip->close();
  20. echo 'ok';
  21. }
  22. else{
  23. echo 'nieok';
  24. }
  25. }
  26. else{
  27. echo 'nieok';
  28. }

Nie usuwa wypakowanego katalogu "b".
Crozin
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ą.
gorden
Dziękuje smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.