Ya está disponible el framework MVC para WordPress! Puedes echarle un ojo aquí!

Renombrar archivos con PHP

PHP

Para renombrar archivos mediante PHP podemos usar la función rename, que devuelve true si la operación ha tenido éxito y false si ha fracasado. Se usa del siguiente modo:

rename ("viejo_nombre", "nuevo_nombre")

La función Rename

La función solamente era válida para distribuciones Linux, pero desde PHP 5.3.1 también funciona con los controladores de Windows.

Debemos tener en cuenta que viejo_nombre hace referencia a la ruta completa del archivo que queremos renombrar y nuevo_nombre hace referencia también a la ruta completa del nuevo nombre. Si por ejemplo usamos:

rename ("/directorio/nombreArchivo1.ext", "nombreArchivo2.ext");

Si usamos el código anterior lo que ocurrirá será que el archivo localizado en «/directorio/archivo1.ext» se moverá al directorio de trabajo actual de PHP con el nombre «nombreArchivo2.ext«, por lo que es recomendable dar rutas absolutas como se muestra a continuación:

rename ("/directorio/nombreArchivo1.ext", "/directorio2/nombreArchivo2.ext");

¿Qué ocurre si tenemos el archivo abierto?

Debemos tener en cuenta que si hemos abierto algún manejador o instancia del archivo con PHP, deberemos cerrarlas todas antes de renombrar el archivo o tendremos un error de permisos. Así por ejemplo el siguiente código no renombrará el archivo correctamente:

$archivoAbierto = fopen('./miArchivo.ext', 'r');
rename( './miArchivo.ext', './miArchivo2.ext' );
//El archivo no se renombrará

Sin embargo, el siguiente código sí renombrará el archivo correctamente:

$archivoAbierto = fopen('./miArchivo.ext', 'r');
fclose($archivoAbierto);
rename( './miArchivo.ext', './miArchivo2.ext' );
//El archivo se renombrará correctamente

Renombrar todos los archivos de un directorio

En el siguiente ejemplo vamos a eliminar todos los caracteres numéricos de todos los archivos de un directorio.

$directorio = opendir("./ruta/directorio);
while ( $archivo = readdir($directorio)) {
    // Comprobamos que el archivo no sea un directorio
    if (!is_dir($archivo)) {
        
        $nuevoNombre = preg_replace('/[0-9]+/', '', $archivo);
        $rutaArchivo1 = "./ruta/".$archivo;
        $rutaArchivo2 = "./ruta/".$nuevoNombre;
        if (rename ($rutaArchivo1, $rutaArchivo2)) {
            
            echo ("El archivo ".$rutaArchivo1." se ha renombrado a ".$rutaArchivo2);

     } else {
         echo ("El archivo ".$rutaArchivo1." no se ha renombrado correctamente");
     }
}

Espero que os haya sido útil. Podéis encontrar más información en la documentación oficial de PHP. Si tenéis alguna duda podéis dejar un comentario.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

2 comentarios en “Renombrar archivos con PHP

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *