Saltar a Comentarios

Viernes, Diciembre 28th, 2007

Asignar a multiples zips, nombre que contiene dentro del .zip

Hace poco, por una razón X, he tenido que renombrar todos unos zips del tipo 92832.zip al contenido que tenían dentro. Con esté script que pongo a disposición de todos, se puede lograr en un rato, está en php.

define('ZIP_DIR','zips/');
define('ZIP_DIR_NUEVO','zipsNuevos/');

if(!dl('php_zip.dll')) die('Necesita la extension ZIP');
$zipDir = dir(ZIP_DIR);
while(false !==($zipArchivo = $zipDir->read()))
{
$zipDirArchivo = ZIP_DIR.$zipArchivo;
if('.zip'==substr($zipArchivo, -4)
    && is_file($zipDirArchivo))
{
    $zip = zip_open($zipDirArchivo);
    if($zip)
    {
    $zipEntradaNombre = basename(zip_entry_name(zip_read($zip)));
    $zipEntradaExt = strrpos($zipEntradaNombre, '.');
    $zipNuevoNombre = substr($zipEntradaNombre, 0,
            ($zipEntradaExt?$zipEntradaExt:strlen($zipEntradaNombre)));
    $zipNuevoNombre = ucwords(str_replace('.', ' ', $zipNuevoNombre));
    $zipNuevoNombreDir = ZIP_DIR_NUEVO.$zipNuevoNombre.'.zip';
    zip_close($zip);

    if(file_exists($zipNuevoNombreDir))
    {
        $i=0;
        while(file_exists($zipNuevoNombreDir =
                ZIP_DIR_NUEVO.$zipNuevoNombre.'_'.$i.'.zip'))
                $i++;
    }

    echo (rename($zipDirArchivo, $zipNuevoNombreDir) ?
        'Renombrado':'Error al renombrar').":
            $zipDirArchivo => $zipNuevoNombreDirrn";
    }
}
}
$zipDir->close();

Entradas Relacionadas

1 Comentario

  • fredy
    Mozilla Firefox Mozilla Firefox 2.0.0.11 en Windows Windows XP
    Enero 4th, 2008 at 17:03

    lo estaba buscando por dios! muy buenooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo