Удаление файлов функцией PHP unlink
В работе веб-ресурса удобно использовать временные файлы для хранения данных в процессе обработки. После завершения работ необходимость в хранении таких файлов отпадает. Сайт может предоставлять посетителю возможность загрузки файлов. Данные могут быть загружены ошибочно или после загрузки отправлены и удалены с хостинга. В этих и многих других случаях PHP предлагает функцию unlink() для удаления информации из файловой системы, предоставленной хостером под веб-ресурс.
Условия хостинга и имена файлов
Создание файла на хостинге может выполнить PHP-код вследствие необходимости постоянного или временного хранения данных. Файлы могут быть загружены через страницы сайта. В любом случае имеет значение имя файла и путь к нему.
Как правило, данные размещаются в специально выделенных папках и не могут быть размещены в месте нахождения кода сайта. Перед удалением файла должно быть проверено, что именно будет удалено.
Хостинги, по обыкновению, - это сервера Apache или Windows. Для безопасной и стабильной работы веб-ресурса целесообразно не только контролировать, но и формировать имя каждого файла. Доверять посетителю загружать файлы с произвольными именами недопустимо.
Для сохранения оригинального имени можно создать специальную таблицу соответствия имен. Каждый загруженный файл получает новое имя, но точное оригинальное имя сохраняется. При создании файла сайт «сам выбирает» имя файла. При таких условиях использование функции PHP unlink() безопасно и надежно.
Удаление файла
Файловая система, предоставленная веб-ресурсу, начинается с позиции $_SERVER['DOCUMENT_ROOT']. Каждая папка, начиная с корня сайта, имеет свои права доступа. Не принято устанавливать блокировки и защиты, наносящие вред сайту.
Если какая-либо операция запрещена - она просто не будет исполнена. Сайт как работал, так и будет продолжать работать.
Не обязательно перед выполнением функции PHP unlink() проверять фактическое наличие файла. Если что-то не так, генерируется ошибка уровня E_WARNING. Экранируя символом «@» вызов функции, можно не придавать значения этой ошибке. Желая писать профессиональный код, следует перед удалением проверить путь, имя файла и его фактическое наличие.
Ситуации, когда функция PHP unlink не работает, придумать сложно. Единственное, важно учитывать крайне пристальное отношение любого хостинга к регистру букв и кириллице.
Во избежание проблем как имена файлов, так и процесс удаления файлов следует держать на ответственном контроле.