Foros del Web » Programando para Internet » PHP »

Se puede copiar un directorio completo con php?????

Estas en el tema de Se puede copiar un directorio completo con php????? en el foro de PHP en Foros del Web. Pues se que con mkdir creo un directorio y con copy() puedo copiar archivos de un directorio a otro. Pero la verdad que esto me ...
  #1 (permalink)  
Antiguo 26/04/2003, 22:39
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años
Puntos: 19
Se puede copiar un directorio completo con php?????

Pues se que con mkdir creo un directorio y con copy() puedo copiar archivos de un directorio a otro.
Pero la verdad que esto me esta dando muchas complicaciones.
Me gustaria saber si es posible en php copiar un directorio completo, que tiene archivos y directorios. Por ejemplo tengo un directorio que se llama "plantilla" y que adentro tiene directorios e imagenes, lo que quisiera hacer, es copiar ese directorio a otra carpeta.
Graciassssssss
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #2 (permalink)  
Antiguo 26/04/2003, 22:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tienes dos opcinoes:

1) Usar copy(), mkdir(), unlink() (.. mm para "mover" podrías usar rename() que hace eso mismo copia en destino y borrra en origen ..) junto con el resto de funciones para listar el directorio .. Pero de forma RECURSIVA (esa es la clave xD)

2) Usas una función directa del Sistema Operativo que uses .. Via PHP (si tienes los suficientes permisos de directorios como de PHP ..) Podrías "lanzar" esa función de tu sistema operativo via:

exec() .. system() .. etc ..

Esto no es muy recomendable por temas de seguridad, pero si que "de un viaje" y mas rápido que con PHP puedes hacer operaciones del tipo que planteas ...

Solo te hace falta saber el comando de "copiar" de tu S.O y mandarle la cadena de ejecución via alguna de esas funciones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 26/04/2003, 22:57
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 11 meses
Puntos: 0
mira un script que encontre
Código PHP:
function rec_copy ($from_path$to_path) { 
mkdir($to_path0777); 
$this_path getcwd(); 
if (
is_dir($from_path)) { 
chdir($from_path); 
$handle=opendir('.'); 
while ((
$file readdir($handle))!==false) { 
if ((
$file != ".") && ($file != "..")) { 
if (
is_dir($file)) { 

rec_copy ($from_path.$file."/"$to_path.$file."/"); 
chdir($from_path); 

if (
is_file($file)){ 
copy($from_path.$file$to_path.$file); 



closedir($handle); 


__________________

la vida es bella cuando no es culera
  #4 (permalink)  
Antiguo 26/04/2003, 23:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Esa opción que te plantea sdf23 es la "recursiva" y la mas segura (pero no la más rápida ..).

Si el movimiento de datos no va a ser muy amenudo .. usa esa opción por seguridad .. cuanto menos uses "exec()" y funciones afines mejor.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 28/04/2003, 06:47
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años
Puntos: 19
Les agradesco amigos.
Muchas gracias, con eso funcion y los comandos voy a poder solucionar el problema.
GRaciassssssssssss.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #6 (permalink)  
Antiguo 28/04/2003, 07:24
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 21 años, 11 meses
Puntos: 0
Las funciones tipo exec() y system() no suponen ningún riesgo de seguridad siempre y cuando no incluyas en ellos código enviado por usuarios.

Es decir, asÃ_ serÃ_a seguro:

system("rm -fR midirectorio");

Por otro lado, antes de usarlo de la siguiente forma se recomienda estar muy seguro de lo que se hace:

system("rm -fR $directorio");

Ya que la variable $directorio podrÃ_a contener cualquier cosa. Aunque esto ocurre con cualquier código/función, no solo con los exec(), system(), etc.

Por otro lado, el usuario que ejecuta el servidor web tampoco suele tener (o no deberÃ_a) permisos para hacer destrozos o ejecutar otras aplicaciones.
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:29.