-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomprimir3.php
34 lines (28 loc) · 1.01 KB
/
comprimir3.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
//Creamos el archivo
$zip = new ZipArchive();
if ($zip->open("nombre.zip", ZIPARCHIVE::CREATE)==TRUE) {
//Si lo abre, es porque no existe ningun zip con ese nombre
//Llamámos a la función para comprimir
comprimirDirectorio("include/", $zip);
//Cerramos el archivo
$zip -> close;
}
//A la función le pasamos como parametro el directorio y el archivo zip
function comprimirDirectorio($dir, $zip) {
//Primero comprabamos que sea un directorio
if (is_dir($dir)){
//Por cada elemento dentro del directorio
foreach (scandir($dir) as $item) {
//Evitamos la carpeta actual y la anterior
if ($item == '.' || $item == '..') continue;
//Si encuentra una que no sea las anteriores,
//vuelve a llamar a la función, con un nuevo directorio
comprimirDirectorio($dir . "/" . $item, $zip);
}
}else{
//En el caso de que sea un archivo, lo añade al zip
$zip->addFile($dir);
}
}
?>