Kreirajte Zip fajl uz pomoć PHP-a

Pravljenje .ZIP arhive uz pomoć PHPa je jednako prosto kao pravljenje zip arhive na desktopu. Ugrađena PHP-ova ZIP klasa omogućava nam ovu funkcionalnost! Ispod se nalazi kod jednostavne create_zip funkcije koju možete koristiti na vašim projektima.

[c]/* funkcija koja kreira zip fajl */
function create_zip($files = array(),$destination = ”,$overwrite = false) {
//ako zip fajl vec postoji i overwrite je false, vratio false
if(file_exists($destination) && !$overwrite) { return false; }
//promjenjive
$valid_files = array();
//ukoliko su proslijedjeni fajlovi…
if(is_array($files)) {
//prodji kroz listu fajlova
foreach($files as $file) {
//uvjeravamo se da fajl postoji
if(file_exists($file)) {
$valid_files[] = $file;
}
}
}
//ako su fajlovi ok…
if(count($valid_files)) {
//kreiramo arhivu
$zip = new ZipArchive();
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
return false;
}
//dodajemo fajlove
foreach($valid_files as $file) {
$zip->addFile($file,$file);
}
//debug
//echo ‘zip arhiva sadrzi ‘,$zip->numFiles,’ fajlova sa statusom ‘,$zip->status;

//zatvaramo zip fajl – kraj!
$zip->close();

//provjeravamo da li je fajl upisan
return file_exists($destination);
}
else
{
return false;
}
}
[/c]

Upotreba

[c]$fajlovi_za_zipovanje = array(
‘images/1.jpg’,
‘images/2.jpg’,
‘images/5.jpg’,
‘nekifolder/ringo.gif’,
‘wordowfajl.doc’,
‘josjedan.doc’
);
//Ako je rezultat funkcije true sve je proslo ok, a ako je false kreiranje zip fajla nije uspjelo
$rezultat = create_zip($files_to_zip,’neka-arhiva.zip’);[/c]