голосование
PHP
Javascript
BASH
HTML
Firebird
Программы
Хостинг
Майнинг
Ресурсы
GIT
SEO
Oracle
Python
Железо
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как удалить папку с данными PHP

Очень часто нужно удалить рекурсивно папку с картинками средствами PHP. Как удалить папку с данными PHP? Тут несколько способов реализации. Вся сложность заключается в том, что сначала нужно удалить все картинки в папке и только потом удалить папку. Самый простой способ - это использовать BASH, но у нас несколько иная задача на PHP.


/*
 * removeDirectory($dir)
 * удаление директории + удаление файлов в директории
 * */
  function removeDirectory($dir) {
    if ($objs = glob($dir."/*")) {
       foreach($objs as $obj) {
         is_dir($obj) ? removeDirectory($obj) : unlink($obj);
       }
    }
    rmdir($dir);
  }  
  removeDirectory('../f1');

Создайте папку f1 и наполните её картинками. Расположите скрипт рядом с папкой. Затем примените функцию removeDirectory(). Рассмотрим тело функции removeDirectory(). Функция glob() ищет все пути, совпадающие с шаблоном согласно правилам. Цикл foreach пробегается по массиву. Условие проверяет является ли элемент массива файлом или папкой. Если элемент массива папка, то функция запускает саму себя. Если элемент массива файл (картинка), то выполняется функция unlink(). Эта функция удалит файл. Как только будут удалены все картинки в папке, то будет запущена функция rmdir(). Она удалит пустую папку.

Допустим вам нужно удалить старую папку или файл? Например, папка создана час назад и вам нужно удалить её через час. Тут поможет функция filemtime.


$folder = "./folder1/";
if(file_exists($folder))
{
    $curTime = time();
    $getDateCreate = filemtime($folder);
    
    $countMin = ($getDateCreate - $curTime) / 60;
    $countSec = ($getDateCreate - $curTime);
    $countMin = round($countMin, 1);
    echo "min: ".$countMin.", sec: ".$countSec;
}
else
{
    echo "нет файла!";	
}
// вывод: min: -12.6, sec: -753

Вы можете просканировать текущую директорию и при помощи цикла удалить найденные папки. О том как просканировать файлы и папки в текущей директории читайте статью как просмотреть содержимое папки scandir() PHP.

просмотры: 1227, уровень: лёгкий уровень, рейтинг: 5, дата: 2015-12-26 14:08:17
проголосовать:

Комментарии:

добавил(а): Александр
дата: 2016-12-29 11:55:04
Здравствуйте! А как удалить папку вместе с файлами, через определенное время после создания (скажем, через сутки), не зная её имени, а ориентируясь только на время создания и директорию в которой эта папка находится?
добавил(а): Егор Астапов
дата: 2016-12-29 17:41:02
Добрый вечер Александр. Сделал для тебя пример. Посмотри выше. помогла функция filemtime(). В одной минуте 60 секунд. В одном часе 60 * 60 секунд. Например, 3600 * 2 - это два часа. По секундам будешь ориентироваться ))
добавил(а): Александр
дата: 2016-12-29 21:38:46
Большое спасибо!





поиск
сайты друзей
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.