Cómo copiar un archivo de un directorio a otro usando PHP?
Digamos que tengo un archivo test.php
en el directorio foo
así como bar
. ¿Cómo puedo reemplazar bar/test.php
por foo/test.php
usando PHP
? Estoy en Windows XP, una solución multiplataforma sería genial, pero Windows preferido.
7 answers
Podría utilizar el copy()
función :
// Will copy foo/test.php to bar/test.php
// overwritting it if necessary
copy('foo/test.php', 'bar/test.php');
Citando un par de frases relevantes de su página de manual:
Hace una copia del archivo fuente para dest.
Si el destino el archivo ya existe, será sobrescribir.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-24 19:43:08
Puedes usar la función rename():
rename('foo/test.php', 'bar/test.php');
Sin embargo, esto hará que mueva el archivo no se copie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-24 21:46:51
Copiar hará esto. Por favor revise el php-manual . Simple búsqueda de Google debe responder a sus dos últimas preguntas;)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-24 21:05:26
La mejor manera de copiar todos los archivos de una carpeta a otra usando PHP
<?php
$src = "/home/www/example.com/source/folders/123456"; // source folder or file
$dest = "/home/www/example.com/test/123456"; // destination folder or file
shell_exec("cp -r $src $dest");
echo "<H2>Copy files completed!</H2>"; //output when done
?>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-02 17:24:19
Usted puede copiar y pasado esto le ayudará
<?php
$file = '/test1/example.txt';
$newfile = '/test2/example.txt';
if(!copy($file,$newfile))
{
echo "failed to copy $file";
}
else
{
echo "copied $file into $newfile\n";
}
?>`
Si desea copiar varios o (archivos ilimitados) visite enlace: http://www.phpkida.com/php-tutorial/copy-multiple-files-from-one-folder-to-another-php /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-19 13:37:49
Puedes usar tanto rename() como copy().
Tiendo a preferir usar rename si ya no requiero que el archivo fuente permanezca en su ubicación.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-16 14:47:43
Hola chicos quería añadir también en cómo copiar utilizando una copia dinámica y pegar.
Digamos que no sabemos la carpeta real que el usuario creará, pero sabemos que en esa carpeta necesitamos archivos para ser copiados, para activar alguna función como eliminar, actualizar, vistas, etc.
Puedes usar algo como esto... Utilicé este código en uno de los complejos proyectos en los que actualmente estoy ocupado. lo construí yo mismo porque todas las respuestas que obtuve en Internet me estaban dando un error.
$dirPath1 = "users/$uniqueID"; #creating main folder and where $uniqueID will be called by a database when a user login.
$result = mkdir($dirPath1, 0755);
$dirPath2 = "users/$uniqueID/profile"; #sub folder
$result = mkdir($dirPath2, 0755);
$dirPath3 = "users/$uniqueID/images"; #sub folder
$result = mkdir($dirPath3, 0755);
$dirPath4 = "users/$uniqueID/uploads";#sub folder
$result = mkdir($dirPath4, 0755);
@copy('blank/dashboard.php', 'users/'.$uniqueID.'/dashboard.php');#from blank folder to dynamic user created folder
@copy('blank/views.php', 'users/'.$uniqueID.'/views.php'); #from blank folder to dynamic user created folder
@copy('blank/upload.php', 'users/'.$uniqueID.'/upload.php'); #from blank folder to dynamic user created folder
@copy('blank/delete.php', 'users/'.$uniqueID.'/delete.php'); #from blank folder to dynamic user created folder
Creo que facebook o Twitter utiliza algo como esto para construir cada nuevo panel de usuario dinámico....
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-26 07:56:50