menü    videók      
Mit tanulnál?
Keresés:
videót kérek belépés regisztráció
 Termék tesztek, hírek, bemutatók  ✦  mobilok, okosórák, médialejátszók, stb.  ✦  kattints ide!
Zip-be tömörítés PHP-val (2018.10.03)
Bejegyzések a témában:   php   programozas  
Hozzászólások

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.