Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2007, 11:48   #1
Def@ult
 
Регистрация: 21.10.2007
Сообщений: 4
По умолчанию Очистка папки из php-скрипта.

Как очистить папку из php-скрипта? То есть удалить всё, что в ней было?
Def@ult вне форума Ответить с цитированием
Старый 21.10.2007, 14:14   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

PHP код:
if ($handle opendir('/path_to_directory/')) {
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") { 
            
unlink $file
        } 
    }
    
closedir($handle); 

SkyM@n вне форума Ответить с цитированием
Старый 22.10.2007, 15:29   #3
Def@ult
 
Регистрация: 21.10.2007
Сообщений: 4
По умолчанию

Спасиб) Даже не думал об операторе организации циклов. Сейчас попробуем.

Только надо было так
PHP код:
...
unlink("/путь к директории/$file");
... 

Последний раз редактировалось SkyM@n; 22.10.2007 в 15:35.
Def@ult вне форума Ответить с цитированием
Старый 22.10.2007, 15:36   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Совершенно верно, забыл указать, что путь к файлу должен иметь исключительно абсолютный характер.
SkyM@n вне форума Ответить с цитированием
Старый 30.10.2007, 06:31   #5
kerill_amuse
 
Аватар для kerill_amuse
 
Регистрация: 30.10.2007
Сообщений: 5
По умолчанию

PHP код:
function recRMDir($path){
    if (
substr($pathstrlen($path)-11) != '/'$path .= '/';
    if (
$handle = @opendir($path)){
        while (
$obj readdir($handle)){
            if (
$obj != '.' && $obj != '..'){
                if (
is_dir($path.$obj)){
                    if (!
recRMDir($path.$obj)) return false;
                }elseif (
is_file($path.$obj)){
                    if (!
unlink($path.$obj))    return false;
                    }
            }
        }
          
closedir($handle);
            if (!@
rmdir($path)) return false;
          return 
true;
    }
   return 
false;

учимся оформлять код правильно. модератор
Шилин Кирилл

Последний раз редактировалось SkyM@n; 30.10.2007 в 19:53.
kerill_amuse вне форума Ответить с цитированием
Старый 30.10.2007, 20:13   #6
Def@ult
 
Регистрация: 21.10.2007
Сообщений: 4
По умолчанию :-)

Всё равно работает)
Def@ult вне форума Ответить с цитированием
Старый 21.12.2007, 12:54   #7
Sonic
 
Регистрация: 21.12.2007
Сообщений: 4
По умолчанию

Спасибо.... давно искал!
Sonic вне форума Ответить с цитированием
Старый 12.05.2010, 10:04   #8
uncoder
Новичок
Джуниор
 
Регистрация: 12.05.2010
Сообщений: 1
По умолчанию

мужики, а как к этому прикрутить крон??? чето х пойму... надо чтоб скрипт чистил папку каждые н минут, подскажите
uncoder вне форума Ответить с цитированием
Старый 15.05.2010, 12:54   #9
bracomp
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 23
По умолчанию

Код HTML:
function recRMDir($path){ 
    if (substr($path, strlen($path)-1, 1) != '/') $path .= '/'; 
    if ($handle = @opendir($path)){ 
        while ($obj = readdir($handle)){ 
            if ($obj != '.' && $obj != '..'){ 
                if (is_dir($path.$obj)){ 
                    if (!recRMDir($path.$obj)) return false; 
                }elseif (is_file($path.$obj)){ 
                    if (!unlink($path.$obj))    return false; 
                    } 
            } 
        } 
          closedir($handle); 
            if (!@rmdir($path)) return false; 
          return true; 
    } 
   return false; 
}
=================================== ====
Да, но этот код работает гораздо медленнее, заметно когда в папке более 600 файлов

Последний раз редактировалось SkyM@n; 15.05.2010 в 23:13.
bracomp вне форума Ответить с цитированием
Старый 18.05.2010, 20:31   #10
Maktraher
 
Регистрация: 16.04.2010
Сообщений: 5
По умолчанию

Есть папка с названием "dir", в ней еще одна папка "Новая папка".
Цель очистить папку "dir", то есть, чтобы "Новая папка" исчезла
Делаю следующее:
PHP код:
<?php
$dir
="dir";
if (
$handle opendir($dir)) {
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") { 
            
unlink($dir."/".$file);
        } 
    }
    
closedir($handle); 
}
?>
Выдает следующее:
Цитата:
Warning: unlink(dir/Новая папка) [function.unlink]: Permission denied in Z:\home\...\deldir.php on line 6
Подскажите, в чем проблема?
Maktraher вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очистка MEMO SG13 Общие вопросы Delphi 5 23.07.2008 21:56
Очистка памяти Senator Общие вопросы Delphi 1 28.06.2008 19:39
Очистка TImage TaTT DoGG Компоненты Delphi 2 14.05.2008 20:57
Очистка памяти в C# darkstarx Общие вопросы .NET 1 14.04.2008 14:48
Очистка dbf. Ferro БД в Delphi 8 12.11.2007 17:27