@Quintis

Как работает рекурсивное удаление файлов в php?

На стековерфлоу нашол функцию для удаления файлов или папок внутри которых могут быть другие файлы или папки :
function Delete($path)
{
    if (is_dir($path) === true)
    {
        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);

        foreach ($files as $file)
        {
            if (in_array($file->getBasename(), array('.', '..')) !== true)
            {
                if ($file->isDir() === true)
                {
                    rmdir($file->getPathName());
                }

                else if (($file->isFile() === true) || ($file->isLink() === true))
                {
                    unlink($file->getPathname());
                }
            }
        }

        return rmdir($path);
    }

    else if ((is_file($path) === true) || (is_link($path) === true))
    {
        return unlink($path);
    }

    return false;
}


Вопрос , для чего эта проверка в функции :
if (in_array($file->getBasename(), array('.', '..')) !== true)
  • Вопрос задан
  • 307 просмотров
Решения вопроса 1
dyuriev
@dyuriev
A posteriori
. - текущий каталог
.. - вышестоящий каталог

проверяет, чтобы рекурсивно не удалить файлы и каталоги выше данного
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы