ZipArchive - je to třída v PHP, která poskytuje funkčnost pro práci s archivy ve formátu ZIP. Pomocí něj lze vytvářet, otevírat, upravovat a extrahovat soubory z archivů ZIP. Je to velmi užitečný nástroj, který lze použít ke kompresi a rozbalení souborů ve webových aplikacích.
Chcete-li začít s třídou ZipArchive, musíte se ujistit, že rozšíření php_zip dostupné na serveru. Pokud není nainstalován, můžete jej snadno přidat úpravou souboru php.ini nebo se obrátit na správce serveru.
Pro připojení třídy ZipArchive do PHP je nutné použít funkci new. Poté je možné volat jeho metody pro práci s archivy. Chcete-li například vytvořit nový ZIP archiv, musíte zavolat metodu open a předat mu jméno archivu a vlajky, aby s ním mohl pracovat. Při úspěšném otevření archivu je možné do něj přidat soubory pomocí metody addFile.
Co je ZipArchive?
Formát Zip je jedním z nejoblíbenějších formátů archivů pro kompresi a sdílení souborů. Umožňuje sloučit více souborů a / nebo složek do jednoho archivu, který pak lze snadno přenášet, ukládat nebo rozbalovat.
Použití ZipArchive v PHP výrazně usnadňuje práci s archivy ZIP, protože poskytuje praktické metody pro přidávání souborů, extrakci obsahu, aktualizaci archivu a další.
Připojení ZipArchive do PHP
- Nainstalujte rozšíření Zip do PHP. K tomu můžete použít příkaz "pecl install zip" nebo jej nainstalovat z balíčku PECL.
- Připojte zip do skriptu pomocí příkazu " use zip;".
- Vytvořit nový objekt ZipArchive pomocí příkazu " new ZipArchive ();".
use ZipArchive;$zip = new ZipArchive;
Nyní můžete pomocí funkcí ZipArchive vytvářet, otevírat a upravovat archivy ve formátu ZIP. Můžete například přidávat soubory do archivu pomocí funkce " addFile ()", extrahovat soubory pomocí funkce" extractTo () "a mazat soubory pomocí funkce"deleteName ()".
Příklad přidání souboru do archivu:
$zip->addFile('файл.txt', 'новый_файл.txt');
Příklad extrakce souboru z archivu:
$zip->extractTo('папка_извлечения', 'новый_файл.txt');
Příklad odstranění souboru z archivu:
$zip->deleteName('новый_файл.txt');
Po dokončení práce s archivem je nutné jej zavřít pomocí funkce"close ()":
$zip->close();
Nyní víte, jak připojit zip v PHP a používat jeho funkce k práci s archivy ve formátu ZIP.
Otevření archivu ZIP
Chcete-li začít pracovat s ZIP archivem v PHP, musíte jej nejprve otevřít. K tomu slouží funkce ZipArchive:: open() .
Syntaxe použití funkce je následující:
$zip = new ZipArchive;if ($zip->open('путь/к/архиву.zip') === TRUE)/ код для работы с архивом$zip-> close();> else
Po dokončení práce s archivem je nutné jej zavřít pomocí metody close (), abyste uvolnili zdroje.
Čtení obsahu ZIP archivu
ZipArchive vám umožňuje nejen vytvářet archivy, ale také číst jejich obsah.
Pro čtení ZIP archivu existuje několik metod. Podívejme se na ty hlavní:
1. Otevření archivu
Chcete-li začít, musíte otevřít archiv ZIP pomocí metody open(). Zároveň se přenáší cesta do archivu a způsob otevírání (ZIPARCHIVE::: RDONLY - pouze pro čtení).
$zip = new ZipArchive;if ($zip->open('example.zip', ZipArchive::RDONLY) === TRUE)/ Код для работы с архивом$zip-> close();> else
2. Získání počtu souborů v archivu
K získání počtu souborů v archivu se používá metoda numFiles ().
$count = $zip->numFiles();echo "В архиве содержится $count файлов";
3. Přehrání souborů v archivu
for ($i = 0; $i < $count; $i++) getName($i);echo $file . '
';>
4. Čtení obsahu souboru
Chcete-li číst obsah souboru z archivu, musíte jej nejprve otevřít metodou getstream(). Data lze poté číst pomocí funkcí čtení PHP, jako je file_get_contents() nebo fread(). Po ukončení operací se souborem je nutné jej zavřít metodou fclose ().
if ($stream = $zip->getStream($file))
Nyní znáte základní metody pro čtení obsahu archivu ZIP. Pomocí nich lze snadno získat informace o souborech nebo přečíst jejich obsah.
Přidání souborů do archivu ZIP
ZipArchive poskytuje jednoduché a pohodlné funkce pro vytváření a správu archivů ZIP v PHP.
Chcete-li přidat soubory do archivu ZIP, musíte nejprve vytvořit instanci třídy zip:
$zip = new ZipArchive();
Poté musíte otevřít archiv ZIP v režimu záznamu:
if ($zip->open('archive.zip', ZipArchive::CREATE) === true)/ Ваш код для добавления файлов$zip-> close();> else
Místo " archive.zip " můžete zadat cestu a název pro svůj ZIP archiv.
Chcete-li přidat soubor do archivu, použijte metodu addFile() :
$file = 'path/to/file.txt';$zip->addFile($file, 'file.txt');
Prvním argumentem je cesta k souboru, který chcete přidat do archivu. Druhým argumentem je název souboru uvnitř archivu.
| Metoda | Popis |
|---|---|
| addFile($filename, $localname) | Přidá soubor do archivu |
| addFromString($localname, $contents) | Přidá obsah do archivu z řádku |
| addEmptyDir($dirname) | Vytvoří prázdný adresář v archivu |
Extrahujte soubory z archivu ZIP
Chcete-li extrahovat soubory z archivu ZIP pomocí zip v PHP, můžete použít následující funkce:
- Otevřete archiv ZIP pomocí metody open (). Metoda přijímá cestu k archivu ZIP jako parametr.
- Zkontrolujte úspěšné otevření archivu pomocí metody open () a funkce podmínky if . Pokud byl archiv úspěšně otevřen, pokračujte v provádění.
- Extrahujte obsah archivu pomocí metody extractTo (). Metoda přijímá cestu do adresáře, do kterého budou soubory extrahovány. Pokud adresář neexistuje, ZipArchive jej automaticky vytvoří.
- Zavřít archiv ZIP pomocí metody close ().
Zde je příklad kódu, který ukazuje, jak extrahovat soubory z archivu ZIP:
open($zipPath) === true) extractTo($extractPath);$zip->close();echo 'Файлы успешно извлечены из ZIP-архива.';> else ?>
V tomto příkladu jsou soubory extrahovány z archivu ZIP uvedeného v proměnné $zipPath a uloženy do adresáře uvedeného v proměnné $extractPath . Pokud je archiv úspěšně otevřen, zobrazí se Zpráva o úspěšném extrahování souborů. V opačném případě se zobrazí chybová zpráva.
Můžete změnit cesty k archivu a adresáři extrakce podle svých potřeb.
Odstranění souborů z archivu ZIP
PHP umožňuje pracovat s ZIP archivy pomocí třídy ZipArchive. Mezi jeho možnosti patří i mazání souborů z archivu. K tomu je třeba provést následující kroky:
- Otevřít archiv ZIP pomocí metody open () a zadat cestu k archivu. Nezapomeňte zkontrolovat úspěšné otevření archivu pomocí metody $zip- > open ().
- K odstranění souboru z archivu použijte metodu deleteName (). Jako možnost Zadejte název souboru.
- Nezapomeňte uložit změny v archivu pomocí metody close ().
$zip = new ZipArchive();if ($zip->open('path/to/archive.zip') === true) deleteName('file.txt');$zip->close();echo 'Файл успешно удален из архива.';> else
Upozorňujeme, že pro práci s ZIP archivy musí být na serveru nainstalováno rozšíření PHP zip . Pokud ne, můžete se obrátit na svého poskytovatele hostingu nebo si rozšíření nainstalovat sami.
Aktualizace souborů v archivu ZIP
Chcete-li aktualizovat soubory v archivu ZIP, musíte postupovat podle následujících kroků:
- Otevřete archiv ZIP pomocí funkce open .
- Použít funkci addFromString k přidání nových souborů nebo funkci addFile k přidání stávajících souborů do archivu.
- Zavřít archiv pomocí funkce close pro uložení změn.
Zde je příklad kódu, který ukazuje aktualizaci souborů v archivu ZIP:
open($zipPath) === TRUE)/ Добавление нового файла$zip-> addFromString('new_file.txt', 'Это новый файл');// Добавление существующего файла$existingFile = 'path/to/existing_file.txt';$zip->addFile($existingFile, 'existing_file.txt');$zip->close();echo 'Файлы успешно добавлены в архив.';> else ?>
Při provádění tohoto kódu v archivu archive.zip budou vytvořeny nebo aktualizovány dva soubory: new_file.txt s obsahem "Toto je nový soubor" a existing_file.txt obsahující existující soubor existing_file.txt .
Aktualizace souborů v ZIP archivu pomocí ZipArchive je velmi pohodlná a usnadňuje komplikaci a zjednodušení archivů na základě vašich potřeb. Použijte jeho funkce k vytváření, aktualizaci a správě archivů ZIP v PHP.
Uložení změn v ZIP archivu
Když provedete všechny potřebné změny v obsahu archivu ZIP pomocí ZIP, je důležité tyto změny uložit, aby se projevily. K tomu můžete použít metody close() a extractTo().
Metoda close() zavře archiv, uloží všechny provedené změny a uvolní zdroje související s prací s archivem. Poté můžete použít metodu extractTo() Chcete-li extrahovat archiv do zadané složky na serveru.
$zip = new ZipArchive;if ($zip->open('example.zip') === TRUE)/ Внесение изменений в содержимое архива. // Закрытие архива$zip-> close();// Извлечение архива в указанную папку$zip->extractTo('/path/to/extract/folder');echo 'Архив успешно сохранен и извлечен.';> else
Všimněte si, že v metodě musíte zadat cestu k archivu, který chcete otevřít open(). Argumentem metody extractTo() je to cesta ke složce, kam chcete archiv extrahovat.
Po spuštění kódu se zobrazí zpráva " archiv úspěšně uložen a extrahován."pokud je operace úspěšná. V opačném případě, pokud dojde k chybám při otevírání archivu nebo extrakci, uvidíte příslušné chybové zprávy.