php переместить файл в другую папку
Копирование, переименование и перемещение файлов в PHP
В статье продолжается описание способов работы с файлами в PHP и применение различных функций для управления ими. Информацию по созданию и записи файлов можно найти в статье «Создание, открытие, чтение, запись, удаление и проверка наличия файла в PHP». Здесь рассматривается работа с уже существующими файлами.
Копирование файла
Для копирования файла применяется функция copy. В ней должны быть заданы директория к исходному файлу и путь к новому создаваемому файлу. Путь можно задавать абсолютным адресом, то есть с указанием всех каталогов от корня. Можно так же задавать относительный путь.
Если файл скопирован, функция вернет значение True. Если копирование не выполнено, то будет возвращено значение False.
Если файл с заданным именем в директории уже есть, старый файл будет заменен новым с тем же именем. Поэтому, при копировании, стоит проверять, не существует ли файл в новой директории. Такую проверку выполняет функция file_exists.
Переименование и перемещение файла
Переименование и перемещение файла можно выполнить одной функцией rename.
Для переименования в параметрах функции указывается имя исходного файла, а вторым параметром, задается новое имя.
При удачном выполнении функции, возвращается результат True, в противном случае False.
Для перемещения файла, задается новый путь к файлу:
Понятно, что при необходимости, и перемещение и переименование файла можно выполнить одновременно. Для этого достаточно в новом пути задать новый каталог и новое имя файла.
Копирование, перемещение и переименование папки в PHP
Копирование каталога
Для копирования папки в PHP необходимо реализовать собственную функцию. Готовое решение можно получить ниже, а сейчас попробуем разобраться, каким образом решается эта задача.
По сути, вся сложность работы с каталогами, а это не только копирование, но и удаление, и перемещение каталога, заключается в содержащихся в них подкаталогах и вложенных файлах. Сложно учесть весь процесс обработки и предусмотреть все возможные события для неопределенного объема вложений. А это может быть:
— некорректно заданный исходный или новый каталог;
— сам новый каталог или вложенные в него файлы уже существуют;
— невозможно выполнить копирование отдельных файлов или папок;
— закончилось место на носителе.
Сам механизм копирования папки сводится к несложному рекурсивному алгоритму, в котором:
В итоге получится подобный код:
— функция is_dir проверяет, является ли заданный объект каталогом;
— функция mkdir пытается создать директорию (символ @ указывает не выводить ошибки, если создать каталог не получается);
— функция dir создает объект для работы с каталогом;
Полученная функция выполняет копирование папки со всеми вложениями, заменяя имеющиеся в новой директории файлы, если они есть. Если нужно сохранять старые файлы, можно добавить условие перед копированием файла. Но лучше добавить параметр, отвечающий за перезапись файлов:
Перемещение и переименование каталогов
И перемещение, и переименование папки выполняется одной функцией rename. В качестве параметров ей задается путь к исходному каталогу, и новый путь.
При этом, проблема может возникнуть при попытке переименовать папку в уже имеющуюся на диске. В этом случае будет выведена ошибка. Для случаев, когда нужно переместить папку с вложениями, где могут встречаться пересечения названий, стоит реализовать свою функцию аналогично приведенной функции копирования, или же просто воспользоваться копированием паки, а затем удалить старую папку.
Php переместить файл в другую папку
(PHP 4, PHP 5, PHP 7, PHP 8)
copy — Копирует файл
Описание
Список параметров
Путь к исходному файлу.
Путь к целевому файлу. Если dest является URL, то операция копирования может завершиться ошибкой, если обёртка URL не поддерживает перезаписывание существующих файлов.
Если целевой файл уже существует, то он будет перезаписан.
Возвращаемые значения
Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.
Примеры
Пример #1 Пример использования функции copy()
= ‘example.txt’ ;
$newfile = ‘example.txt.bak’ ;
Смотрите также
User Contributed Notes 22 notes
Don’t forget; you can use copy on remote files, rather than doing messy fopen stuff. e.g.
Here is a simple script that I use for removing and copying non-empty directories. Very useful when you are not sure what is the type of a file.
I am using these for managing folders and zip archives for my website plugins.
A nice simple trick if you need to make sure the folder exists first:
Below a code snippet for downloading a file from a web server to a local file.
It demonstrates useful customizations of the request (such as setting a User-Agent and Referrer, often required by web sites), and how to download only files if the copy on the web site is newer than the local copy.
It further demonstrates the processing of response headers (if set by server) to determine the timestamp and file name. The file type is checked because some servers return a 200 OK return code with a textual «not found» page, instead of a proper 404 return code.
Работа с файлами в PHP
Чтение файла: file_get_contents()
С помощью функции file_get_contents() можно получить содержимое файла:
Также мы можем получить html-код какой-либо страницы в интернете:
Но работает это далеко не для всех сайтов, у многих есть защита от такого примитивного парсинга.
Чтение файла: file()
Функция file() позволяет получить содержимое файла в виде массива. Разделителем элементов является символ переноса строки.
Создадим в корне сайта файл data.txt со следующим содержимым:
Теперь запустим скрипт index.php со следующим кодом:
При запуске этого скрипта мы получим в браузере:
Заметили, что у первых двух строк длина 7 символов вместо пяти? Это из-за того, что каждая строка содержит в конце символы переноса строки.
Чаще всего они нам не нужны, поэтому их можно убрать, передав вторым параметром константу FILE_IGNORE_NEW_LINES :
Теперь у всех строк будет по 5 символов.
Если нам необходимо получить только заполненные строки в файле и пропустить пустые, можно передать вторым параметром константу FILE_SKIP_EMPTY_LINES :
Разумеется, мы можем передать сразу две константы:
Создание файла и запись в файл: file_put_contents()
Функция file_put_contents() позволяет создать файл и заполнить его данными.
Чтобы не перезаписывать данные, а добавить их в конец файла, нужно передать третьим параметром константу FILE_APPEND :
Также вторым параметром можно передать массив:
Но этот вариант не очень удобен, поскольку все элементы массива запишутся подряд, без каких-либо разделителей. Чтобы их добавить, можно использовать функцию implode:
Создание папки или структуры папок
Создать папку можно с помощью функции mkdir() (make directory):
Кроме этого, второй параметр может игнорироваться при заданной umask (пользовательская маска (user mask), которая нужна для определения конечных прав доступа). В этом случае принудительно сменить права можно функцией chmod() :
Также мы можем создать структуру папок рекурсивно, для этого нужно третьим параметром передать true :
Но в этом случае права доступа будут заданы только для конечной папки. Для изменения прав у каждой из папок придётся указывать права вручную:
Проверка существования файла или папки
Проверить существование папки или файла можно с помощью функции file_exists() :
Если вы хотите проверить существование только папки или только файла, для этого есть специальные функции is_dir() и is_file() :
Проверка прав доступа
Функции is_readable() и is_writable() проверяют, есть ли у пользователя, от имени которого запущен PHP, права на чтение и запись файла или папки:
Копирование, перенос и удаление файла
Для удаления файлов используется функция unlink() :
Чтобы скопировать файл, используем функцию copy() :
Для переименования и переноса файла в другую папку используется функция rename() :
Работа с файлами с помощью fopen()
Но иногда возникают ситуации, когда нам необходимы более продвинутые инструменты. Например, если у нас есть большой текстовый файл и мы хотим читать его построчно, а не весь сразу, для экономии оперативной памяти.
Итак, открыть (или создать и открыть) файл можно с помощью функции fopen() :
Для построчного чтения файла используется функция fgets() :
Также в PHP существует множество других полезных функций, работающих с дескриптором файла. Почитать о них можно в документации.
Как скопировать папку с файлами в другую папку с заменой средствами php?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как скопировать папку (с подпапками и файлами) из одной директории в другую?
нужно скопировать папку ( с подпапками и файлами) из одной директории в другую. Пути (от куда и.
Как скопировать папку с файлами в нужную папку?
Есть флешка, есть некая папка на флешке допустим D:/1 как скопировать всю папку с файлами и.
Работа с файлами. Как сканировать папку и переносить от туда лишнее в другую папку
Хочу написать программу со следующим функционалом: Имеется директория, по пути C:\MyFolder. В этой.
Выбрать случайную папку, скопировать из неё все файлы и перенести в другую папку
Добрый день! Прошу помощи в написании скрипта. Имеется папка A с неким количеством других папок.
а в чем разница между этими адресами.
Добавлено через 12 минут
ну если самое простенькое, то можно так
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Выбрать случайную папку, скопировать из неё все файлы и перенести в другую папку
Добрый день! Прошу помощи в написании батника. Имеется папка A с неким количеством других папок.
Как скопировать картинку в другую папку
Собственно, вопрос в названии. Загружаю картинку в некую папку, параллельно нужно скопировать тот.
Как скопировать папку с подпапками и файлами на фтп сервер
Помогите умоляю. С файлами пашет норм, а папку с подпапками не хочет брать. Или может я не там.
Как найти файл в определенной папке и скопировать в другую папку?
Появилась необходимость искать нужный файл в папке и копировать его в другую папку. Есть вот.