Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

удаление и очитска каталогов. PHP

312
25 февраля 2007 года
dead_star
392 / / 26.11.2006
столкнулся с задачей. нужно удалить каталог(папку). удаление каталога возможно только при условии что каталог пуст.
я написал такую функцию:
Код:
// очищяем(от файлов) и удаляем дерикторию image/foto
if (($opendir = @opendir("image/foto")) != false){
 while (($file = readdir($opendir)) != false){
  if ($file != "." && $file != ".."){
   unlink("image/foto/".$file);
  }
 }
 closedir($opendir);
 rmdir ("image/foto");
}
// создаем заново тот же каталог, но уже пустой
@mkdir ("image/foto", 0700);

но возникает небольшая проблемка. в каталоге "image/foto" могут быть под коталоги и тогда не удасться удалмть этот каталог. нужна функция полной очистки с под коталогами
PS название подгаталогов мне не известно :confused:
PSS в мануале я, к сожалению, не нашел ничего подходящего :(
244
25 февраля 2007 года
UAS
2.0K / / 19.07.2006
Где-то недавно обсуждалась функции рекурсивного обхода всех папок и выводе дерева файлов. Думаю переделать ту функцию под удаление не составит проблем
312
25 февраля 2007 года
dead_star
392 / / 26.11.2006
Цитата: UAS
Где-то недавно обсуждалась функции рекурсивного обхода всех папок и выводе дерева файлов. Думаю переделать ту функцию под удаление не составит проблем



нашел http://forum.codenet.ru/showthread.php?t=35227
ну, я более мение понял. пользоваться командами is_file() и is_dir().
правдо функция очистки получится очень не слобой
система каталогов:[INDENT][COLOR="Green"] site/image/???/min[/COLOR][/INDENT][COLOR="Green"]site[/COLOR] это очищяемый каталог.
соответственно нужно делать 3-ступенчетую проверку на коталоги :eek: :(

256
26 февраля 2007 года
foxweb
1.0K / / 27.07.2005
ну просто смех и слёзы! вниз посмотри, прокрути немного. увидишь блок "Похожие разделы"
271
26 февраля 2007 года
MrXaK
721 / / 31.12.2002
Код:
function full_del($directory)
{
  $dir = opendir($directory);
  while ($file = readdir($dir))
  {
    if (is_file($directory."/".$file))
      unlink($directory."/".$file);
    elseif (is_dir($directory."/".$file) && ($file != ".") && ($file != ".."))
      full_del($directory."/".$file);
    closedir($dir);
    rmdir($directory);
  }
}
312
26 февраля 2007 года
dead_star
392 / / 26.11.2006
Цитата: foxweb, Mr.Hacker
ну просто смех и слёзы! вниз посмотри, прокрути немного. увидишь блок "Похожие разделы"



вы меня что за идеота держите??? :mad:
конечно я видел код и понял как он работает(иначеб не писал бы предедущий пост).
пример который привел Mr.Hacker так же близок к правельному как и далек от него(один из примеров: full_del()).
плюс ко всему код надо в торе усложнить, так как в подкатегориях могут быть тоже файлы и под коталоги(об этом я говорил в прошлом посте)

код программы которая должна чистить коталог до третьего колена

Код:
// основной католог
$dir = opendir($directory);
while ($file = readdir($dir)){
 if (is_file($directory."/".$file)){
  unlink($directory."/".$file);
 } elseif (is_dir($directory."/".$file) && ($file != ".") && ($file != "..")){
  // первое колено
  $directory2 = $directory."/".$file;
  $dir2 = opendir($directory2);
  while ($file2 = readdir($dir2)){
   if (is_file($directory2."/".$file2)){
    unlink($directory2."/".$file2);
   } elseif (is_dir($directory2."/".$file2) && ($file2 != ".") && ($file2 != "..")){
    // второе колено
    $directory3 = $directory2."/".$file2;
    $dir3 = opendir($directory3);
    while ($file3 = readdir($dir3)){
     if (is_file($directory3."/".$file3)){
      unlink($directory3."/".$file3);
     } elseif (is_dir($directory3."/".$file3) && ($file3 != ".") && ($file3 != "..")){
      // третье колено
      $directory4 = $directory3."/".$file3;
      $dir4 = opendir($directory4);
      while ($file4 = readdir($dir4)){
       if (is_file($directory4."/".$file4)){
        unlink($directory4."/".$file4);
       }
      }
      closedir($dir4);
      rmdir($directory4); // удаляем третье колено
     }
    }
    closedir($dir3);
    rmdir($directory3); // удаляем второе колено
   }
  }
  closedir($dir2);
  rmdir($directory2); // удаляем первое колено
 }
}
closedir($dir);
rmdir($directory); // удаляем основной каталог

теперь надеюсь понятно почему я плевался в преведущем посте
[COLOR="Red"]если ктото считает что этот код написан неправельно может первый кинуть в меня кирпич[/COLOR]
271
27 февраля 2007 года
MrXaK
721 / / 31.12.2002
у меня код рекурсивный и работающий) удаляет каталог со всеми вложенными файлами, каталогами и файлами тех каталогов и каталогами тех каталогов и т. п....
тока блин скобочку одну забыл закрыть) поправил
2dead_star тока я не понял как твой код работает... у тебя вложенность не бесконечная плюс куча ненужного кода...
312
27 февраля 2007 года
dead_star
392 / / 26.11.2006
Цитата: Mr.Hacker
у меня код рекурсивный и работающий) удаляет каталог со всеми вложенными файлами, каталогами и файлами тех каталогов и каталогами тех каталогов и т. п....
тока блин скобочку одну забыл закрыть) поправил
2dead_star тока я не понял как твой код работает... у тебя вложенность не бесконечная плюс куча ненужного кода...



первое если можно обясни мне что за функция full_del(). в мануале такой нет
второе
[COLOR="Green"] closedir($dir);
rmdir($directory);[/COLOR]
надо ставить в конце цыкла, а не в середине
я удивляюсь как оно у тебя вообще работает
PS без обид

10K
27 февраля 2007 года
jwagra
62 / / 23.08.2006
Цитата: dead_star
первое если можно обясни мне что за функция full_del(). в мануале такой нет



ахахаха
http://www.softtime.ru/bookphp/gl5_4.php
http://ru.wikipedia.org/wiki/Рекурсия

271
27 февраля 2007 года
MrXaK
721 / / 31.12.2002
2dead_star
первая строка моего кода) функция вызыват саму себя)
 
Код:
function full_del($directory)

хм, а
closedir($dir);
rmdir($directory);
может и после цикла) скорее всего да)
92
27 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: dead_star
первое если можно обясни мне что за функция full_del(). в мануале такой нет



не смог удержаться :D

PS: без обид =))))))))

PPS: сначала учись программировать, а потом читай мануалы языков...

PPPS: без обид ;)

312
27 февраля 2007 года
dead_star
392 / / 26.11.2006
Цитата: Mr.Hacker
первая строка моего кода) функция вызыват саму себя)



о ей, точно. дурень не заметил. мне в голову не приходил такой способ обращения к функции

92
27 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: dead_star
о ей, точно. дурень не заметил. мне в голову не приходил такой способ обращения к функции



рекурсия это... азы программирования...

ты на самом деле, почитай что-нибудь общее по программированию, тебе же потом проще будет. просто теорию. а то кинуться на какй-то язык не зная.... сразу это не гут.

просто тебе совет такой.


дерзай, у тебя всё получится, если лениться не будешь :)

312
28 февраля 2007 года
dead_star
392 / / 26.11.2006
Цитата: Тень Пса
рекурсия это... азы программирования...

ты на самом деле, почитай что-нибудь общее по программированию, тебе же потом проще будет. просто теорию. а то кинуться на какй-то язык не зная.... сразу это не гут.

просто тебе совет такой.


дерзай, у тебя всё получится, если лениться не будешь :)



да я не ленюсь. только и делаю что ночами пишу.
а об теории. я уже прочитал один учебник php/MySQL(упомянал о нем в разделе книги) скачал из сети еще десятка два учебников еще немалое количество статей по php и не только. начал создавать отдельную папку с распечатками разных интересных статей.
PS если еть что интересное почитать, кидай ссылки.
а по поводу функций, у меня с ними некоторые проблемы. при их реализации в JavaScript проблем не возникает, а вот в php както не очень.
нашел интересную статейку про реализацию модульного програмирования через функции. так до конца и не разобрался.
все на include() сижу. хоть и сервер тормозит порядком, но чтож делать

244
28 февраля 2007 года
UAS
2.0K / / 19.07.2006
Цитата:
PS если еть что интересное почитать, кидай ссылки.


:D раньше помню тоже качал тоннами чтатьи, надо на винте поискать. А вообще самая главная статья для меня - это офф.документация))) Да. Ещё полазай по сайту phpclub.ru, там также есть их электронный журнал. Очень познавательно!!! (правда руки так и не дошли прочитать хотя бы один)

Цитата:
при их реализации в JavaScript проблем не возникает, а вот в php както не очень.


странно... у меня все в точности да наоборот...

15
28 февраля 2007 года
shaelf
2.7K / / 04.05.2005
Народ, либо с утра я не проснулся, либо ещё что-то. Какая разница между создание функция в JavaScript и PHP? Журнал скорее находится по адресу http://phpinside.ru. Это его оффсайт так сказать.
PS А читать его стоит))
244
28 февраля 2007 года
UAS
2.0K / / 19.07.2006
Цитата:
Народ, либо с утра я не проснулся, либо ещё что-то. Какая разница между создание функция в JavaScript и PHP?


Ээээээ. Да разницы никакой, не считая того что приходится парится с кроссбраузарностью.. Я вешаюсь иногда из-за этого.. Сделал что-то.. Под ослом пашет, в опере нет. Исправил: в итоге пашет в Опере и не пашет в осле.. И т.д. А вообще один раз я сидел полтора часа за JavaScript'ом в поиске ошибки.. Вся ошибка была в том что массив объявляется как arr=new Array(); а я эррэй написал с маленькой буквы... Ну вообщем пара тысяч нервных клеток сгорела...

92
28 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
:)

ваще по javaScript советую на w3schools.com идти ) да и CSS там же, очень, довольно таки, совсем даже, ага, не плохо описан )

2 Author: хм.... поройся здесь...... http://ermak.cs.nstu.ru/ там есть неплохие доки....... если дома остались доки, я тебе кину.... я когда-то в этом универе учился =)))))
312
28 февраля 2007 года
dead_star
392 / / 26.11.2006
о, спасибо за ссылочки. с удовольствием почитаю. буду грысть гранит науки.

тоже чтоли кинуть пару ссылочек??? может кому пригодится
искал мануал по JavaScript нашел вот это.
тоже немношко о Java javaportal.ru
статьи по php web-coder.ru
Очень приятные, правельные и подробные уроки по верстке сайтов
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог