Статьи Программирование в PHP

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

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

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

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

copy("myfile.txt", "newfile.txt");

Если файл скопирован, функция вернет значение 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");


Комментарии

Имя:
Текст комментария:
* В комментариях запрещено публиковать рекламные объявления. Сообщения, содержащие ссылки на сторонние ресурсы добавляется в скрытом режиме. Они будут открыты, если не нарушают установленных правил, после проверки.
Защита от спам-роботов (* Обязателельно укажите ответ на простой вопрос ниже.)
Сколько ножек у трeхногого табурета? (цифра)