Nem túl gyakori, hogy fájlokat kell tömöríteni PHP-val, de azért néha megesik. Szerencsére erre a PHP-nak van megoldása, amit most megnézünk.
Tömörítés kapcsán a PHP az alábbi formátumokat ismeri:
Bzip2
LZF
Phar
Rar
Zip
Zlib
A zip az egyik legismertebb, így tömörített fájlok létrehozásához tökéletes tud lenni.
Tömörítés zip-be
Először is létre kell hozni a zip fájlt:
$zip = new ZipArchive;
$eredmeny = $zip->open('teszt.zip', ZipArchive::CREATE);
Vagyis a zip fájl elérése, neve és a fájl létrehozás (megnyitás) módja a várt paraméterek.
Az open több mindenre használható:
ZipArchive::OVERWRITE: ha már létezik, akkor írja felülírja
ZipArchive::CREATE: hozza létre
ZipArchive::EXCL: eredményezzen hibát, ha már létezik
ZipArchive::CHECKCONS: konzisztencia ellenőrzés
Az $eredmény tárolja a megnyitás sikerét vagy sikertelenségét, ha sikeres:
if ($eredmeny === TRUE)
{
$zip->addFile('eredeti_fajl_nev.txt', 'uj_fajl_nev.txt');
$zip->close();
}
else //ha nem
{
//hiba kezelése
}
Az addFile esetén az új fájl név nem kötelező, ha nem kerül megadásra, akkor ugyanaz marad a fájl neve mint volt.
Természetesen több fájl is hozzáadható:
if ($eredmeny === TRUE)
{
$zip->addFile('eredeti_fajl_nev.txt');
$zip->addFile('eredeti_fajl_nev2.txt', 'uj_fajl.txt');
$zip->close();
}
A close bezárja a zip-et.
Ami még érdekes lehet, hogy szövegeket hozzá lehet adni txt fájlként:
$zip->addFromString('teszt.txt', 'ez a tartalma a fájlnak');
Érdekel a PHP programozás az alapoktól az adatbázist használó weboldalak készítéséig?
Kattints ide oktató videókért!
Kitömörítés zip-ből
Hasonlóan egyszerű, csak most nyilván megnyitás szükséges, nem létrehozás:
$zip = new ZipArchive;
$eredmeny = $zip->open('teszt.zip');
if ($eredmeny === TRUE)
{
$zip->extractTo('teszt');
$zip->close();
}
else //ha nem
{
//hiba kezelése
}
A munkát az extractTo végzi, amely kitömöríti a fájlokat a megadott helyre.
A lényeg ennyi, ez legtöbbször elég, de a dokumentációban lehetnek még hasznos dolgok.
Zip-be tömörítés PHP-val (2018.10.03)
Bejegyzések a témában:
php
programozas
Hozzászólások
Hozzászólások
Moderálási elvek, szabályzat