Удаление файла из директории с помощью WP_DELETE_FILE_FROM_DIRECTORY()
Функция WP_DELETE_FILE_FROM_DIRECTORY() предназначена для удаления файла, если его путь находится в указанной директории. В этой статье мы рассмотрим, как использовать эту функцию в WordPress и объясним, как она работает.
Описание функции
Возвращаемое значение
Функция возвращает:
true— если файл успешно удален,false— если удаление файла не удалось.
Как использовать
Синтаксис функции:
wp_delete_file_from_directory( $file, $directory );
- $file (string, обязательный) — абсолютный путь к файлу, который нужно удалить.
- $directory (string, обязательный) — абсолютный путь к директории, в которой находится файл.
Пример использования
Рассмотрим пример удаления файла test.html из директории загрузок:
$upldir_info = wp_get_upload_dir();
$uploads_dir = $upldir_info['basedir']; // путь к директории загрузок
$result = wp_delete_file_from_directory( "$uploads_dir/test.html", $uploads_dir ); // будет возвращено true или false
В этом примере мы сначала получаем путь к директории загрузок, а затем пытаемся удалить файл test.html, находящийся в этой директории.
Структура функции
Вот как выглядит код функции wp_delete_file_from_directory:
function wp_delete_file_from_directory( $file, $directory ) {
if ( wp_is_stream( $file ) ) {
$real_file = $file;
$real_directory = $directory;
} else {
$real_file = realpath( wp_normalize_path( $file ) );
$real_directory = realpath( wp_normalize_path( $directory ) );
}
if ( false !== $real_file ) {
$real_file = wp_normalize_path( $real_file );
}
if ( false !== $real_directory ) {
$real_directory = wp_normalize_path( $real_directory );
}
if ( false === $real_file || false === $real_directory || ! str_starts_with( $real_file, trailingslashit( $real_directory ) ) ) {
return false;
}
return wp_delete_file( $file );
}
Как работает эта функция
- Проверка потоков: Если заданный файл является потоком, он сохраняется как есть.
- Нормализация путей: Путь к файлу и к директории нормализуется для корректного сравнения.
- Проверка условий: Если один из путей не существует или файл не находится в указанной директории, функция возвращает
false. - Удаление файла: Если все условия выполнены, файл удаляется.
Похожие функции
Существует ряд других функций для работы с файловой системой в WordPress, которые могут быть полезны:
copy_dir()— копирует директорию.get_dirsize()— получает размер директории.list_files()— возвращает список файлов в директории.wp_delete_file()— удаляет файл.wp_mkdir_p()— создает директорию с учетом вложенных.
Эти функции тоже можно использовать для управления файлами и директориями в рамках WordPress.
Используя WP_DELETE_FILE_FROM_DIRECTORY(), вы можете легко и безопасно управлять файлами в ваших проектах на WordPress.