Ago 13
Digamos que queremos hacer un respaldo de archivos del servidor o copiar archivos de una ubicación a otra. Para esto este código nos puede servir.
En primera tenemos $dir y $dir2 que corresponden a la ruta origen y la ruta destino respectivamente, luego hacemos cambios a un script que ya había publicado antes, donde:
- $dp=opendir($dir); abre el directorio para su lectura.
- while($file=readdir($dp)) ciclo que lee el directorio mientras existan archivos en él.
- Con $extension=getExtension($file); aplicamos un filtro para solo copiar archivos con ciertas extensiones
- En la variable $cmd guardamos una cadena con el comando cp con sus parametros y con la función exec() ejecutamos el comando en el sistema.
function getExtension($archivo) { $a=explode(".",$archivo); return $a[count($a)-1]; } $dir = getRuta($CveCom); $dir2 = getRuta($comn); if(!file_exists($dir)) //verificamos que existe el directorio { echo "<br/>Error... El directorio no existe. Configura bien tu variable \"dir\" ..."; } else { $i=0; //echo $dir; $dp=opendir($dir); while($file=readdir($dp)) //hacemos un ciclo para guardar los nombres de los directorios y archivos que se tienen en el directorio actual { $extension=getExtension($file); if($extension=="php" || $extension=="html" || $extension=="htm") { $srcfile=$dir."/".$file; $dstfile=$dir2."/"; echo "Copiar '$srcfile' a '$dstfile'... <br>"; $cmd = "cp $srcfile $dstfile"; $eje1=exec($cmd, $output, $return_var); } } }
Otra opción para copiar los archivos sería la función copy(), pero al ejecutar el script marcaba error al ejecutarse, así que decidi usar la alternativa del exec().>
Post relacionados:

