InnePHP

Rozpakowywanie archiwum ZIP za pomocą skryptu na naszym serwerze

Czasem zachodzi potrzeba wgrania na serwer sporej ilości plików, np. kilkudziesięciu zdjęć, pakietu instalacyjnego dla WordPress’a bądź systemu Joomla. Jak wiemy, bardzo łatwo można zrobić to za pomocą każdego klienta FTP, jednak sam proces przesyłania, czasem kilku, kilku tysięcy plików, trwa znacznie dłużej, niż wykonanie jednego polecenia, które wyśle nam spakowane pliki w archiwum ZIP.

Kiedy przesłana paczka jest już na serwerze, rozpakowanie ich to już kwestia tylko kilku chwil, dlatego warto zainteresować się poniższym skryptem, który zrobi to automatycznie.

W zmiennej $zip->open(„…”) przechowujemy ścieżkę do katalogu, w którym znajduje się przesłane archiwum.

<?php
$zip = new ZipArchive();
if ($zip->open("tmp/plik.zip") !== TRUE) {die ('Błąd rozpakowywania archiwum.');}
$zip->extractTo("katalog/");
$zip->close();
?>

W miejscu $zip->extractTo(„…”); należy podać miejsce, w którym wypakowane pliki mają się znaleźć, również tak, jak w poprzednim przypadku, ścieżkę do katalogu musimy zakończyć slash’em.

Jeśli podczas działania skryptu wystąpi błąd, zakończy on swoją pracę i wyświetli komunikat o niepowodzeniu.

komentarzy 8

  • Awatar
    Kowis

    11 kwietnia 2012 18:27

    dzięki, przydatne :)

    Odpowiedz
  • Awatar
    marcin

    26 września 2012 11:27

    Dzięki, przydatne

    Odpowiedz
  • Awatar
    parslej

    28 września 2012 12:14

    Dzieki przydatne: dla joomli np:

    open(„Joomla_1.5.26-Stable-Full_Package.zip”) !== TRUE) {die (‚B│╣d rozpakowywania archiwum.’);}
    $zip->extractTo(„.”);
    $zip->close();

    ?>

    Odpowiedz
  • Awatar
    Tomasz Gwóźdź

    9 maja 2013 15:26

    Tego właśnie szukałem :)

    Odpowiedz
  • Awatar
    Kamil

    5 sierpnia 2013 16:18

    Bardzo przydatne!

    Odpowiedz
  • Awatar
    tt

    1 lipca 2015 23:39

    A jak nie chce rozpakować do konkretnego katalogu tylko po prostu na serwer ?

    Odpowiedz
  • Awatar
    Adam Bartoszek

    25 grudnia 2016 07:31

    a czy można dodać funkcję dir by wyszukała pliki zip w wskazanym katalogu i wyboru który chcemy rozpakować jeśli tak prosiłbym o informacje jak zmodyfikować kod.

    Zgóry dzięki :)

    Odpowiedz

Zostaw odpowiedź