Copiar directorios completos con PHP

Una función en PHP que debemos utilizar muchas veces sin duda alguna es el copy(), esta función la uso para generar un archivo en base a un template en texto plano, pero en algunas ocasiones nuestro template puede ser un directorio en donde tenemos que duplicar todo su contenido, esta simple función nos ayudara en estos problemas.

MySQL, PHP Hosting

function full_copy( $source, $target ) {
    if ( is_dir( $source ) ) {
        @mkdir( $target );
        $d = dir( $source );
        while ( FALSE !== ( $entry = $d->read() ) ) {
            if ( $entry == '.' || $entry == '..' ) {
                continue;
            }
            $Entry = $source . '/' . $entry; 
            if ( is_dir( $Entry ) ) {
                full_copy( $Entry, $target . '/' . $entry );
                continue;
            }
            copy( $Entry, $target . '/' . $entry );
        }
 
        $d->close();
    }else {
        copy( $source, $target );
    }
}

En la practica podemos utilizarlo de esta manera.

$source ='/templates/template1/';
$destination = '/templates/newtemplate-'.date('Y-m-d');
full_copy($source, $destination);
http://Fine-wood-working.com/
jfdghjhthit45

También te puede interesar

4 Comments

  1. Jose Bello
    ago 16, 2010 @ 08:28:46

    Funciona a la perfeccion, gracias

  2. Miguel
    jul 29, 2011 @ 16:08:43

    Excelente!! gracias!

  3. Esteban
    sep 13, 2011 @ 15:07:49

    Como se utiliza? es que conozco poco de eso..
    tengo un directorio y quiero que cada ves que el usuario le de clic a un botón que diga “crear” el directorio se copie

  4. henry
    ene 05, 2012 @ 23:38:52

    muy buen snipet ;) me ayudo de mucho para mi programa un 10 ;)