Копирование и удаление файлов с помощью PHP

В PHP для копирования файлов используется функция copy($source, $result). Эта функция требует указания двух параметров: источника $source и имени целевого файла $result. Важно учесть, что необходимо указывать полные пути к файлам. Пример использования функции copy:

<?php
if (copy('Z:/home/site/www/file.txt', 'Z:/home/site/www/file2.txt')) {
    echo "Копирование успешно выполнено";
} else {
    echo "Ошибка при копировании";
}
?>

Удаление файлов в PHP ещё проще. Для этой цели существует функция unlink($file). Функция проста в использовании: она удаляет указанный файл. Будьте осторожны при её использовании! Пример работы с функцией:

<?php
if (unlink('filename.txt')) {
    echo "Файл удален";
} else {
    echo "Ошибка при удалении файла";
}
?>

Как видите, работа с файлами в PHP не представляет сложности.

Права доступа к файлам в PHP

При работе с файлами важно понимать, что не все операции будут успешными. Одной из причин может быть неправильно установленные права доступа к файлам или директориям. Каждый файл или директория в UNIX-подобных системах снабжены определёнными атрибутами доступа. Эти атрибуты определяют, какие действия могут быть выполнены с файлом или директорией и кем.

Символьный формат прав доступа

В UNIX-подобных системах права доступа представлены в виде комбинации символов. Рассмотрим пример прав доступа: drwxr-xr-x.

Первый символ указывает на тип объекта:

Следующие три символа определяют права владельца файла:

  1. r — право на чтение (read)
  2. w — право на запись (write)
  3. x — право на выполнение (execute)

Последующие три символа — это права для группы, к которой принадлежит файл. Например, r-x означает право на чтение и выполнение, но без права на запись.

Последние три символа определяют права для всех остальных пользователей. В данном примере это также r-x.

Таким образом, строка прав "drwxr-xr-x" говорит нам о следующем:

Числовой формат прав доступа

Числовой формат представляет собой четырёхзначное число, где каждая цифра представляет собой восьмеричное значение. В числе "0755":

Таким образом, 0755 в числовом формате соответствует drwxr-xr-x в символьном формате.

Изменение прав с помощью PHP

В PHP есть функции для работы с правами файлов. Одной из таких функций является chmod(). Пример использования:

<?php
chmod('/path/to/file.txt', 0755);
?>

В примере выше файлу file.txt устанавливаются права 0755, что соответствует drwxr-xr-x.

Проверка прав доступа

Чтобы проверить, имеете ли вы права на чтение, запись или выполнение файла, вы можете использовать функции is_readable(), is_writable() и is_executable() соответственно.

<?php
if (is_readable('/path/to/file.txt')) {
    echo 'Файл доступен для чтения';
} else {
    echo 'Файл не доступен для чтения';
}
?>