Как происходит копирование, перемещение и удаление файлов в PHP?

как происходит копирование, перемещение и удаление файлов в 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 'Ошибка при создании файла';
}

Последние публикации