Как скопировать файл из одного каталога в другой с помощью PHP?

Скажем, у меня есть файл test.php в каталоге foo, а также bar. Как заменить bar/test.php на foo/test.php на PHP? Я нахожусь в Windows XP, кросс-платформенное решение будет отличным, но предпочтительным для Windows.

Ответ 1

Вы можете использовать функцию copy():

// Will copy foo/test.php to bar/test.php
// overwritting it if necessary
copy('foo/test.php', 'bar/test.php');


Цитирование нескольких соответствующих предложений со страницы руководства:

Делает копию источника файла для Dest.

Если пункт назначения файл уже существует, он будет перезаписаны.

Ответ 2

Вы можете использовать функцию rename():

rename('foo/test.php', 'bar/test.php');

Это будет перемещать файл не копировать

Ответ 3

copy сделает это. Пожалуйста, проверьте php-manual. Простой поиск Google должен отвечать на два последних вопроса;)

Ответ 4

Лучший способ скопировать все файлы из одной папки в другую с помощью 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
?>

Ответ 5

Вы можете использовать как rename(), так и copy().

Я предпочитаю использовать переименование, если я больше не требую, чтобы исходный файл оставался в его местоположении.

Ответ 6

Привет, ребята хотели также добавить, как копировать, используя динамическое копирование и вставку.

скажем, что мы не знаем фактическую папку, которую создадим пользователь, но мы знаем, что в этой папке нам нужны файлы для копирования, чтобы активировать некоторые функции, такие как удаление, обновление, просмотр и т.д.

вы можете использовать что-то вроде этого... Я использовал этот код в одном из сложных проектов, в которых я сейчас занят. я просто создаю его сам, потому что все ответы, которые я получил в Интернете, давали мне ошибку.

    $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

Я думаю, что facebook или twitter использует что-то вроде этого для создания каждой новой динамической панели пользователя...

Ответ 7

Вы можете копировать и проезжать мимо, это поможет вам

<?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";} ?>

Если вы хотите скопировать несколько или (неограниченные файлы), перейдите по ссылке ниже http://www.phpkida.com/php-tutorial/copy-multiple-files-from-one-folder-to-another-php/