Renombrar archivos con numeración correlativa

Renombrar archivos con numeración correlativa en PHP

Renombrar archivos con numeración correlativa

Renombrar archivos con numeración correlativa en PHP

PHP

Script que renombra un archivo que tiene el mismo nombre que otro, subido anteriormente en una aplicación web, generando numeración correlativa incremental

En ocasiones todo programador web necesita controlar que los archivos, imágenes, etc... que hacen upload, no se reemplacen o chanquen, es decir no se repitan sus nombres porque se reemplazarán por el último que se haya subido.

Para solucionarlo presentamos un script en PHP, sencillo que les puede ayudar, el cual permite renombrar un archivo en forma consecutiva, si detecta que en el servidor existe otro con el mismo nombre y extensión.

Lo  que hace el script es evaluar si existe un nombre igual, recorre hasta que no exista uno igual a la correlación numérica es decir:

  • Primera vuelta codigo,jpg
  • Segunda vuelta codigo_1.jpg
  • Tercera vuelta codigo_2.jpg

El código es fácil de entenderlo, al final el archivo es renombrado con el nuevo nombre generado por el script PHP. Veamos el código PHP a continuación:

<?php     
    //  Apptiva Web Programación PHP
    //  Script para controlar que una segunda imagen con el mismo nombre no reemplaze 
    //  a la primera que está en el servidor, asignando un número correlativo.    
    $dir                    =   'img/';
    $nombreimagen           =   "codigo.jpg";
    $fullpath               =   $dir.$nombreimagen;
    $info                   =   pathinfo($fullpath);
    $nombreimagen_nueva     =   "codigo.".$info['extension'];    
    $name = $nombreimagen_nueva;
    $k=0;
    do
    {
        $file_exists = false;
        $pathinfo = pathinfo($dir.$name);
        $name = $k > 0 ? str_replace('-'.($k-1),'', $pathinfo['filename']).'-'.$k.'.'.$pathinfo['extension'] : $name;
        $file_name = trim(basename(stripslashes($name)), ".\x00..\x20");        
        if (strpos($file_name, '.') === false && preg_match('/^image\/(gif|jpeg|png)/', $type, $matches)) {
            $file_name .= '.'.$matches[1];
        }
        if(file_exists($dir.$file_name))
            $file_exists = true;
        $k++;
    }while($file_exists);
    $nombreimagen_nueva     =   $file_name;
    echo $nombreimagen_nueva;
    //rename("../img/".$nombreimagen,"../img/".$nombreimagen_nueva);
?>

 

Compártelo...talvez alguién lo necesite!

Whatsapp Messenger Facebook Twitter

Visitado 1370 veces | Publicado hace 2 años

Curso Laravel 8 Página Web 100% Administrable

Mira el temario del curso en el siguiente link

VER MÁS DETALLES DEL CURSO

Logo Codea App

Develop your code

Perú, México, Colombia, España, Venezuela, Argentina, Bolivia

© Todos los derechos reservados CODEA APP | Cursos de programación avanzados con proyectos reales | 2020