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


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

Author: Thusitha Sumanadasa, 2011-04-24

7 answers

Вы могли бы использовать copy() функция:

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


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

Создает копию исходного файла в dest.

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

 242
Author: Pascal MARTIN, 2011-04-24 19:43:08

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

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

Однако это приведет к перемещению файла , а не к копированию

 24
Author: Dizzi, 2011-04-24 21:46:51

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

 11
Author: cweinberger, 2011-04-24 21:05:26

Лучший способ скопировать все файлы из одной папки в другую с помощью 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
?>
 4
Author: Yogendra - eCommerce Developer, 2016-02-02 17:24:19

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

<?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
Author: Mukesh Jakhar, 2018-02-19 13:37:49

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

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

 0
Author: Eclipse, 2015-04-16 14:47:43

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

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

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

    $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
Author: Makhi Ngubane, 2015-08-26 07:56:50