Как скопировать файл из одного каталога в другой, используя PHP? - PullRequest
135 голосов
/ 24 апреля 2011

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

Ответы [ 7 ]

255 голосов
/ 24 апреля 2011

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

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


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

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

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

25 голосов
/ 25 апреля 2011

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

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

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

13 голосов
/ 24 апреля 2011

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

5 голосов
/ 02 февраля 2016

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

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

<?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/

1 голос
/ 26 августа 2015

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

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

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

    $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 используют что-то подобное для создания динамической панели каждого нового пользователя ....

0 голосов
/ 16 апреля 2015

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

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

...