Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][ZIP] Pakowanie zapakowanego katalogu
gorden
post 7.08.2014, 16:38:14
Post #1





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 7.08.2014, 17:46:28
Post #2





Grupa: Zarejestrowani
Postów: 6 800
Pomógł: 1827
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  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".

Ten post edytował trueblue 7.08.2014, 17:50:18


--------------------
Go to the top of the page
+Quote Post
Crozin
post 7.08.2014, 17:48:14
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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ą.
Go to the top of the page
+Quote Post
gorden
post 11.08.2014, 19:24:05
Post #4





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


Dziękuje smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 18:40