Lucrul cu arhivele zip în php

Extensia arhivelor Zip din PHP este folosită pentru a lucra cu arhivele Zip și cu fișierele care le conțin. Pentru a utiliza această extensie în PHP 5, trebuie să activați php_zip.dll în fișierul php.ini. În acest articol, veți învăța cum să lucrați cu fișierele de arhivă Zip din PHP utilizând un număr de aplicații demo PHP. Veți învăța cum să: creați fișiere zip;

Crearea de arhive zip în PHP și adăugarea fișierelor

Pentru a crea o arhivă Zip în PHP, puteți utiliza constanta predefinită ZIPARCHIVE :: CREATE; Arhiva va fi creată dacă nu există deja. (Pentru a adăuga fișiere în arhivă, puteți utiliza metodele de mai sus și addFile addFromString.) Primul demo al aplicației (add_file_from_string.php) creează (dacă nu există deja) sau se deschide o archive1.zip arhiva Zip, apoi adaugă fișierul folosind addFromString metoda ():

Iată codul pentru add_file_from_string.php:

De asemenea, puteți vedea rezultatele fișierului add_file_from_string.php din Figura 1.

Textul de fișier test1.txt a fost adăugat cu succes în arhive1.zip

Lucrul cu arhivele zip în php

Fig.1 Arhiva1.zip

bool ZipArhive :: addFile (șirul $ filename [, string $ localname]). Adaugă un fișier în arhiva Zip din calea path bool ZipArchive :: addEmptyDir (șir $ dirname). adaugă un dosar gol în arhivă.

Aici este codul pentru add_file_directory.php:

Cu rezultatul înscrierii add_file_directory.php puteți vedea, de asemenea, în Figura 2:

Figura 2. Caracteristicile obiectului archive2.zip

Următoarea aplicație demo este utilizată pentru a crea zip archive2.zip, care include două fișiere: test3.txt și test4.txt. (Pentru informații despre utilizarea acestei aplicații, vedeți mai jos.) Codul pentru archive2.php:

Rezultatul este archive2.php. Puteți vedea, de asemenea, rezultatele din Figura 3: fișier text test3.txt adăugat cu succes la archive2.zip folosind metoda addFile fișier text test4.txt adăugat cu succes la archive2.zip folosind metoda metoda addFromString.

Lucrul cu arhivele zip în php

Extragerea arhivei Zip în PHP

Demo-ul acestei părți (extract_archives.php) arată cum de a extrage conținutul arhivei la o metodă extractTo folder utilizând (): bool ZipArchive :: extractTo (string $ destinație [, $ intrari mixte]). extrage conținutul arhivei.

Arhivele archive1.zip și archive2.zip vor fi extrase în dosarul de arhivare, după cum se arată în Figura 4. Codul pentru extract_archives.php:

Rezultatul extract_archives.php: archive1.zip și archive2.zip au fost extrase în arhivă!

Lucrul cu arhivele zip în php

Figura 4. Conținutul dosarului de arhivă după extragerea arhivei1 și arhivei2

Următoarea aplicație demo (extract_to_specified_folder.php) extrage conținutul arhivei Zip într-un folder special utilizând metoda extractTo () descrisă mai sus. Codul pentru extract_to_specific_folder.php:

Rezultatul este extract_to_specified_folder.php. De asemenea, puteți vedea rezultatele din Figura 5: Arhiva este extrasă în folderul ZIP_extract!

Figura 5. Folderul ZIP_extract cu arhiva fișierelor1

De asemenea, puteți vedea rezultatele listării fișierlist.php din Figura 6: Fișierele test3.txt și test4.txt din arhiva archive2.zip au fost extrase cu succes în directorul specificat ZIP_TEST!

Figura 6. Fișierele selectate extrase din arhiva2 în directorul atribuit ZIP_TEST

Obținerea caracteristicilor unui obiect pe baza indicelui său

Pentru a obține caracteristicile unui singur fișier, puteți folosi metoda statIndex:

mixt ZipArchive :: statIndex (int $ index [, int $ flags]).

Următoarea aplicație demo (statIndex.php) iterează lista fișierelor din archive2.zip și tipărește caracteristicile fiecărui obiect. Codul pentru statIndex.php:

Rezultatul înregistrării este 5.php:

Următoarea aplicație demo (locate.php) permite, de asemenea, recepționarea caracteristicilor unui fișier, cu condiția ca archive1.zip să conțină acest fișier. Metoda locateName returnează indexul fișierului în arhivă și utilizează constanta predefinită ZIPARCHIVE :: FL_NODIR, care ignoră directorul component. Prototipul constantei ZIPARCHIVE :: FL_NODIR:

mixt ZipArchive :: locateName (șir $ nume [, int $ flags])

Codul pentru locate.php:

Rezultatul înregistrării este locate.php:

Array ([name] => test2.txt [index] => 2 [crc] => -513033757 [size] => 50 [mtime] => 1269715222 [comp_size] => 49 [comp_method] => 8)

Eliminarea și redenumirea arhivelor zip în PHP

Pentru a șterge sau a redenumi arhivele Zip în PHP, puteți utiliza un nume sau un index. Metodele care pot fi utilizate în acest scop includ:

bool ZipArchive :: deleteIndex (int $ index) - Șterge obiectul din arhivă folosind indexul; bool ZipArhive :: deleteName (string $ name) - Sterge obiectul din arhiva folosind numele; bool ZipArchive :: renameIndex (int $ index, string $ newname) - Redenumește obiectul bazat pe index; bool ZipArchive :: renameName (șir $ nume, șir $ newname) - Redenumește obiectul pe baza numelui.

aplicație demo Următorul (rename.php) utilizează toate metodele de mai sus pentru a redenumi un fișier cu „indicele = 3“, ca „renameByIndex.txt“ și „test4.txt“, ca „renameByName.txt“. Codul pentru rename.php:

Rezultatele listării sunt rename.php. De asemenea, puteți vedea rezultatele din Figura 7 și Figura 8: Fișierele au fost redenumite cu succes în arhiva archive2.zip!

Lucrul cu arhivele zip în php

Figura 7. Conținutul original al archive2.zip

Lucrul cu arhivele zip în php

Următoarea aplicație (delete.php) elimină fișierul "indice = 1" archive2.zip și renameByIndex.txt fișier text, folosind deleteIndex () și deleteName (). Codul pentru delete.php:

Datorită faptului că arhiva conținea doar două fișiere și ambele au fost șterse, archive2.zip a fost, de asemenea, șters. Următoarea aplicație (add_text_files.php) iterează fișierele arhivate și adaugă toate fișierele .txt din acest director în text_archive.zip. Codul pentru add_text_files.php:

Rezultatele înregistrării add_text_files.php: text_archive.zip a fost creat cu succes!

Figura 9. Gruparea tuturor fișierelor text din directorul curent într-o nouă arhivă text_archive.zip

concluzie

După cum probabil ați observat, în timp ce studiați aplicațiile prezentate în articol, lucrul cu extensia de arhivă Zip în PHP este destul de simplu și chiar amuzant. Tot ceea ce vi se cere este capacitatea de a gestiona metodele de expansiune. În acest caz, puteți efectua cu succes operațiuni diverse cu arhivele Zip.

Articole similare