Перенести все файлы на php

Копирование, переименование и перемещение файлов в PHP

В статье продолжается описание способов работы с файлами в PHP и применение различных функций для управления ими. Информацию по созданию и записи файлов можно найти в статье «Создание, открытие, чтение, запись, удаление и проверка наличия файла в PHP». Здесь рассматривается работа с уже существующими файлами.

Копирование файла

Для копирования файла применяется функция copy. В ней должны быть заданы директория к исходному файлу и путь к новому создаваемому файлу. Путь можно задавать абсолютным адресом, то есть с указанием всех каталогов от корня. Можно так же задавать относительный путь.

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

if (copy("myfile.txt", "newfile.txt"))
echo "Файл скопирован";
else
echo "Файл не был скопирован";

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

$new_filename = "newfile.txt";

if (file_exists($new_filename))
echo "Такой файл уже существует";
else
if (copy("myfile.txt", "newfile.txt"))
echo "Файл скопирован";
else
echo "Файл не был скопирован";

Переименование и перемещение файла

Переименование и перемещение файла можно выполнить одной функцией rename.

Для переименования в параметрах функции указывается имя исходного файла, а вторым параметром, задается новое имя.

rename("myfile.txt", "newname.txt");

При удачном выполнении функции, возвращается результат True, в противном случае False.

if (rename("myfile.txt", "newname.txt"))
echo "Файл переименован";
else
echo "Файл не был переименован";

Для перемещения файла, задается новый путь к файлу:

rename("myfile.txt", "newfolder/myfile.txt");

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

rename("myfile.txt", "newfolder/newfile.txt");

Источник

Копирование, перемещение и переименование папки в PHP

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

Читайте также:  Упражнения на функции javascript

По сути, вся сложность работы с каталогами, а это не только копирование, но и удаление, и перемещение каталога, заключается в содержащихся в них подкаталогах и вложенных файлах. Сложно учесть весь процесс обработки и предусмотреть все возможные события для неопределенного объема вложений. А это может быть:

— некорректно заданный исходный или новый каталог;

— сам новый каталог или вложенные в него файлы уже существуют;

— невозможно выполнить копирование отдельных файлов или папок;

— закончилось место на носителе.

Сам механизм копирования папки сводится к несложному рекурсивному алгоритму, в котором:

1. функции MyCopyAll предлагается скопировать папку "myfolder" в "newfolder".
2. если заданный путь является файлом, то выполняем копирование.
Иначе:
3. если заданной папки не существует, то создаем ее, и выполняем повторный вызов
функции с теми же параметрами.
Иначе:
4. получаем список содержащихся в исходной папке файлов и подкаталогов.
5. запускаем цикл по полученному списку и делаем вызов той же функции
с указанием вложенных директорий.

В итоге получится подобный код:

 my_copy_all($from, $to) if (is_dir($from)) 
@mkdir($to);
$d = dir($from);
while (false !== ($entry = $d->read()))
if ($entry == "." || $entry == "..") continue;
my_copy_all("$from/$entry", "$to/$entry");
>
$d->close();
>
else copy($from, $to);
>

my_copy_all("myfolder",

— функция is_dir проверяет, является ли заданный объект каталогом;

— функция mkdir пытается создать директорию (символ @ указывает не выводить ошибки, если создать каталог не получается);

— функция dir создает объект для работы с каталогом;

— $d->read() – выполняет чтение имени объекта (файла или папки) из объекта каталога;

— $d->close() – завершает работу с объектом каталога.

Полученная функция выполняет копирование папки со всеми вложениями, заменяя имеющиеся в новой директории файлы, если они есть. Если нужно сохранять старые файлы, можно добавить условие перед копированием файла. Но лучше добавить параметр, отвечающий за перезапись файлов:

function my_copy_all($from, $to, $rewrite = true) if (is_dir($from)) 
@mkdir($to);
$d = dir($from);
while (false !== ($entry = $d->read()))
if ($entry == "." || $entry == "..") continue;
my_copy_all("$from/$entry", "$to/$entry", $rewrite);
>
$d->close();
> else
if (!file_exists($to) || $rewrite)
copy($from, $to);
>
>

my_copy_all("myfolder","newfolder", false); // вызов копирования без перезаписи

Перемещение и переименование каталогов

И перемещение, и переименование папки выполняется одной функцией rename. В качестве параметров ей задается путь к исходному каталогу, и новый путь.

rename("myfolder","newfolder"); // переименование
rename("myfolder","newfolder/myfolder"); // перемещение

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

Источник

6 Ways To Move Files In PHP (Simple Examples)

Welcome to a quick tutorial on how to move files in PHP. Need to move a file from one folder into another?

Moving files in PHP is as simple as using a single function – rename(«SOURCE.FILE», «FOLDER/TARGET.FILE») . Yes, there is no move file function in PHP, and we literally “rename” a file into another folder.

That should cover the basics, but things are different when it comes to “advanced file moving” – Read on for more examples!

TLDR – QUICK SLIDES

Common Ways To Move Files In PHP

TABLE OF CONTENTS

WAYS TO MOVE FILES IN PHP

All right, let us now get into the various ways and examples of how to move files in PHP.

1) BASIC RENAME FILE

As in the introduction, changing a file name is as easy as using the rename() function. But please take note that if there is an existing new.txt , it will be overridden without any warning.

2) BASIC MOVE FILE

As in the introduction again, there is no move() function in PHP – We literally just use rename() to move a file from one directory to another.

3) MOVE WITHOUT OVERRIDING

 return rename($src, $dest); > // (B) GO! echo safemove("old.txt", "new.txt") ? "OK" : "ERROR" ;

To prevent overriding on moving files, we can do a simple file_exists() check – Then, you decide. Either don’t move the file or choose a different file name.

4) MOVE FILES OF CERTAIN EXTENSIONS

 // (B) GET ALL FILES $files = glob($src."*.", GLOB_BRACE); // (C) MOVE if (count($files)>0) < foreach ($files as $f) < $moveTo = $dest . basename($f); echo rename($f, $moveTo) ? "$f moved to $moveTo\r\n" : "Error moving $f to $moveTo\r\n"; >> > movetype("jpg,png,gif", "d:/from/", "d:/to/");

Only want to move certain types of files in a folder? Use the glob() function to help filter out those files first, then move them one-by-one.

5) MOVE FILES TO ANOTHER SERVER

 curl_file_create($file), // NOTE: PHP 5.5+ ONLY "key" => "value" // OPTIONAL EXTRA FIELDS ]); // (B) SEND FILE $results = curl_exec($curl); curl_close($curl); // (C) DELETE LOCAL FILE AFTER SUCCESSFUL SEND if ($results == "OK")

There are actually quite a number of ways to move files from one server to another. This is a “PHP way” if you don’t want to set up an FTP server, shared drive, or anything of that sort.

On the “source server”, we will use CURL (client URL) to send the file to the “destination server”. Thereafter, we delete the file after a successful transfer.

 */ // (B) WORKS THE SAME AS REGULAR FILE UPLOAD // move_uploaded_file(SOURCE, DESTINATION) echo move_uploaded_file($_FILES["up"]["tmp_name"], $_FILES["up"]["name"]) ? "OK" : "ERROR" ; // (C) FOR DEBUGGING // print_r($_SERVER); // print_r($_POST); // print_r($_FILES);

On the “destination server”, we handle the file transfer just like a “normal file upload”. But you might want to protect this script a little more – Verify the identity of the client, restrict by IP address, or maybe set a “secret key”.

6) MOVE FILES WITH COMMAND PROMPT

Finally, this is not exactly using PHP to move files… But we are running a shell command to move files from PHP.

DOWNLOAD & NOTES

Here is the download link to the example code, so you don’t have to copy-paste everything.

SUPPORT

600+ free tutorials & projects on Code Boxx and still growing. I insist on not turning Code Boxx into a «paid scripts and courses» business, so every little bit of support helps.

EXAMPLE CODE DOWNLOAD

Click here for the source code on GitHub gist, just click on “download zip” or do a git clone. I have released it under the MIT license, so feel free to build on top of it or use it in your own project.

That’s all for this guide, and here is a small section on some extras and links that may be useful to you.

THE SUMMARY

TUTORIAL VIDEO

INFOGRAPHIC CHEAT SHEET

THE END

Thank you for reading, and we have come to the end of this guide. I hope that it has helped you with your project, and if you want to share anything with this guide, please feel free to comment below. Good luck and happy coding!

Источник

Работа с файлами в php. Копирование, перемещение, переименование

Работа с файлами в php. Копирование, перемещение, переименование

Эта статья является продолжением первой статьи по работе с файлами, в которой были описаны создание, чтение, получение размера и удаление файлов. В продолжении темы работы с файлами, я приведу еще несколько простых примеров, которые могут быть полезны.

Работа с файлами в php. Копирование

Для копирования файлов в php есть специальная функция — copy:

// создание копии файла $file = ‘folder_1/1.txt’; $new_file = ‘folder_1/2.txt’; if (copy($file, $newfile)) < echo "Файл успешно скопирован!"; >else

Работа с файлами в php. Переименование

Переименовывать файлы в php тоже, очень просто, для этих целей существует функция — rename:

// переименование файла $file = ‘folder_1/1.txt’; $new_name = ‘folder_1/2.txt’; if (rename($file, $new_name)) < echo "Файл успешно переименован!"; >else

Работа с файлами в php. Перемещение

Для перемещения файлов, я не нашел ни одной стандартной функции, но для этих целей хорошо подходит функция — rename, которую мы использовали при переименовании файла.

// перемещение файла $file = ‘folder_1/1.txt’; $new_name = ‘folder_2/1.txt’; if (rename($file, $new_name)) < echo "Файл успешно перемещен!"; >else

Чтобы переименовать файл, можно воспользоваться и другим способом — сделать копию файла, а потом удалить оригинал:

// перемещение файла $file = 'folder_1/1.txt'; $new_file = 'folder_2/1.txt'; copy($file, $new_file); // делаем копию unlink($file); // удаляем оригинал

Источник

Оцените статью