Tengo un problema... tengo hecho un script en php que me hace copias de seguridad de la web de mi cliente.
estaba usando php4 y una clase llamada ZipArchive.php que incluia al .php del backup.
migraron mi servidor a php5 y no funcionaba mas... entonces empeze a usar zip de php para comprimir los archivos.
lo que hace el script es recorrer todos los direcctorios del host y ir agregando los archivos al zip.
aca esta el script
Código PHP:
function listar_directorios_ruta($ruta){
global $zip;
echo '<div> </div>';
echo '<div>Directorio: '.$ruta.'</div>';
if ($directorio = opendir($ruta)) {
while ($archivo = readdir($directorio)) {
if(!is_dir($ruta.$archivo)){
$zip->addFile($ruta."/".$archivo, substr($ruta,3).$archivo);
if($zip==true){
echo '<div>comprimio: '.$ruta.$archivo.'</div>';
}else{
echo '<div>error: '.$ruta.$archivo.'</div>';
}
}
}
closedir($directorio);
}
// abrir un directorio y listarlo recursivo
if (is_dir($ruta)) {
if ($directorio = opendir($ruta)) {
{ while ($archivo = readdir($directorio)){
if (is_dir($ruta.$archivo) and $archivo!="." and $archivo!=".." and $archivo!="backup"){
//solo si el archivo es un directorio, distinto que "." y ".." y "backup"
//echo '<div>Directorio2: '.$ruta.$archivo.'</div>';
listar_directorios_ruta($ruta.$archivo."/");
}
}
closedir($directorio);
}
}else{
echo '<div class="Estilo4">'.$ruta.' no es ruta valida</div>';
}
}
$fecha = date("d-m-Y");
$hora = date("h-m-s A");
$pathSave = 'backup_'.$fecha.'_'.$hora.'.zip';
$zip = new ZipArchive;
$res = $zip->open($pathSave, ZIPARCHIVE::CREATE);
echo '<div class="Estilo2">Creando archivo zip...</div>';
if ($res === TRUE) {
echo '<div class="Estilo2">Archivo zip creado</div>';
$ruta = "../";
listar_directorios_ruta($ruta);
$zip->close();
unset($zip);
echo ' <div><a href="'.$pathSave.'">Descargar Backup</a></div>';
}else{
echo ' <div>Error al crear el archivo zip</div>';
}
pero nose porque causa... aunque parece que comprime todos los archivos (no estoy seguro) no crea el .zip en el servidor.
Alguien me podria ayudar?