Главная страница » Статьи и уроки » PHP статьи » PHP: копирование, перемещение и удаление файлов
Опрос
Вы занимаетесь разработкой сайтов?
Выделенные и виртуальные серверы в Европе

PHP: копирование, перемещение и удаление файлов

Автор: administrator Дата: 28-04-2018, 19:00 Категория: Статьи и уроки / PHP статьи

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

Создание копии файла в PHP происходит с помощью одноименной функции copy(). Её первый параметр принимает путь до исходного файла, а второй - место расположения копии. Функция вернет true при успешном завершении работы, а false в случае ошибки. Если файл, указанный во втором параметре уже существует, то он будет перезаписан.
//Создание пустого файла в корне сайта и его копирование
$mainFile = $_SERVER['DOCUMENT_ROOT']. '/main-file.txt';
$copyFile = $_SERVER['DOCUMENT_ROOT']. '/copy-file.txt';

if (touch($mainFile)) {
    if (copy($mainFile, $copyFile)) {
        echo "Файл {$copyFile} успешно создан";
    } else {
        echo 'Ошибка при копировании файла';
    }

} else {
    echo 'Ошибка при создании файла';
}
Если вам нужно произвести копирование лишь части исходного файла, потребуется дополнительная программная обработка. Она может включать в себя: открытие файла, чтение данных, редактирование, создание нового файла и запись в него измененной информации. Функция copy() не рассчитана на такое. Она выполняет простейшую базовую операцию.

Заметка
Функция копирования, как и другие рассматриваемые ниже, может возвращать false в при отсутствии различных прав на работу с файлом. Если выполняется перемещение файла, вам потребуются права на запись в соответствующую директорию.


Проверка прав доступа к файлам и директориям будет рассмотрена в следующих уроках.

Перемещение файла

В PHP нет встроенной функции, отвечающей за перемещение файла. Это не является ошибкой. Смысл состоит в том, что операция переименования по своей сути очень схожа с перемещением, так как при изменении имени исходного файла можно указать другой путь расположения. Такой подход взят за основу в операционной системе Linux.
Для перемещения файла используйте функцию rename(). Она имеет те же параметры, что и copy(), а так же возвращает аналогичные значения и перезаписывает результирующий файл, если он существует.
//Создание пустого файла и директории для перемещения
$mainFile = $_SERVER['DOCUMENT_ROOT']. '/main-file.txt';
$tempDir = $_SERVER['DOCUMENT_ROOT']. '/temp-directory';

if (touch($mainFile) && mkdir($tempDir)) {
    if (rename($mainFile, $tempDir. '/main-file.txt')) {
        echo "Файл успешно перемещен в папку {$tempDir}";
    } else {
        echo 'Ошибка при перемещении файла';
    }

} else {
    echo 'Ошибка при создании файла или директории';
}




Удаление файла

Функция unlink() принимает один обязательный параметр, которым является место расположения удаляемого файла. Она возвращает true при успешном завершении операции, а false в случае ошибки. Как видно из примера, удаление файлов в PHP происходит также просто, как и остальные операции.
//Создание пустого файла в корне сайта и его удаление
$mainFile = $_SERVER['DOCUMENT_ROOT']. '/main-file.txt';

if (touch($mainFile)) {
    if (unlink($mainFile)) {
        echo "Файл {$mainFile} успешно удален";
    } else {
        echo 'Ошибка при удалении файла';
    }

} else {
    echo 'Ошибка при создании файла';
}
  • Не нравится
  • 0
  • Нравится
Просмотров: 1 101 Напечатать Жалоба
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Написать комментарий
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Код: Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: