Как удалить папку с файлами в PHP?

Пользователь

от sherwood_littel , в категории: PHP , 3 года назад

Как удалить папку с файлами в PHP?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 3 года назад

@sherwood_littel Для начала нужно удалить все папки из папки и затем можно удалять саму директорию. Можно использовать цикл или рекурсию. В PHP 5.4+ можно использовать RecursiveDirectoryIterator() и затем в цикле удалить файлы и в конце директорию, ниже пример кода:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?php

$dir = '/tmp/test';
$iterator = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($iterator,
    RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $file) {
    // Проверяем если директория
    if ($file->isDir()) {
        // Удаляем директорию
        rmdir($file->getRealPath());
    } else {
        // Удаляем файл
        unlink($file->getRealPath());
    }
}
// Удалить директорию
rmdir($dir);


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от rebekah , 2 года назад

@sherwood_littel 

Вы можете удалить папку с файлами в PHP, используя функцию rmdir().


Однако, чтобы удалить папку с файлами, вы должны сначала удалить все файлы внутри нее. Для этого вы можете использовать функцию unlink() для удаления каждого файла по отдельности.


Пример кода для удаления папки с файлами в PHP:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
$dir_path = '/путь/к/папке'; // Укажите путь к папке, которую нужно удалить
if (is_dir($dir_path)) {
    $files = scandir($dir_path);
    foreach ($files as $file) {
        if ($file != '.' && $file != '..') {
            unlink($dir_path.'/'.$file); // Удаляем каждый файл в папке
        }
    }
    rmdir($dir_path); // Удаляем пустую папку
}
?>


Обратите внимание, что после удаления всех файлов в папке, вы можете вызвать функцию rmdir() только для пустой папки. Если папка не пустая, удаление не выполнится.