удаление и очитска каталогов. PHP
я написал такую функцию:
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 в мануале я, к сожалению, не нашел ничего подходящего :(
нашел 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: :(
{
$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);
}
}
вы меня что за идеота держите??? :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]
тока блин скобочку одну забыл закрыть) поправил
2dead_star тока я не понял как твой код работает... у тебя вложенность не бесконечная плюс куча ненужного кода...
тока блин скобочку одну забыл закрыть) поправил
2dead_star тока я не понял как твой код работает... у тебя вложенность не бесконечная плюс куча ненужного кода...
первое если можно обясни мне что за функция full_del(). в мануале такой нет
второе
[COLOR="Green"] closedir($dir);
rmdir($directory);[/COLOR]
надо ставить в конце цыкла, а не в середине
я удивляюсь как оно у тебя вообще работает
PS без обид
ахахаха
http://www.softtime.ru/bookphp/gl5_4.php
http://ru.wikipedia.org/wiki/Рекурсия
первая строка моего кода) функция вызыват саму себя)
хм, а
closedir($dir);
rmdir($directory);
может и после цикла) скорее всего да)
не смог удержаться :D
PS: без обид =))))))))
PPS: сначала учись программировать, а потом читай мануалы языков...
PPPS: без обид ;)
о ей, точно. дурень не заметил. мне в голову не приходил такой способ обращения к функции
рекурсия это... азы программирования...
ты на самом деле, почитай что-нибудь общее по программированию, тебе же потом проще будет. просто теорию. а то кинуться на какй-то язык не зная.... сразу это не гут.
просто тебе совет такой.
дерзай, у тебя всё получится, если лениться не будешь :)
ты на самом деле, почитай что-нибудь общее по программированию, тебе же потом проще будет. просто теорию. а то кинуться на какй-то язык не зная.... сразу это не гут.
просто тебе совет такой.
дерзай, у тебя всё получится, если лениться не будешь :)
да я не ленюсь. только и делаю что ночами пишу.
а об теории. я уже прочитал один учебник php/MySQL(упомянал о нем в разделе книги) скачал из сети еще десятка два учебников еще немалое количество статей по php и не только. начал создавать отдельную папку с распечатками разных интересных статей.
PS если еть что интересное почитать, кидай ссылки.
а по поводу функций, у меня с ними некоторые проблемы. при их реализации в JavaScript проблем не возникает, а вот в php както не очень.
нашел интересную статейку про реализацию модульного програмирования через функции. так до конца и не разобрался.
все на include() сижу. хоть и сервер тормозит порядком, но чтож делать
:D раньше помню тоже качал тоннами чтатьи, надо на винте поискать. А вообще самая главная статья для меня - это офф.документация))) Да. Ещё полазай по сайту phpclub.ru, там также есть их электронный журнал. Очень познавательно!!! (правда руки так и не дошли прочитать хотя бы один)
странно... у меня все в точности да наоборот...
PS А читать его стоит))
Ээээээ. Да разницы никакой, не считая того что приходится парится с кроссбраузарностью.. Я вешаюсь иногда из-за этого.. Сделал что-то.. Под ослом пашет, в опере нет. Исправил: в итоге пашет в Опере и не пашет в осле.. И т.д. А вообще один раз я сидел полтора часа за JavaScript'ом в поиске ошибки.. Вся ошибка была в том что массив объявляется как arr=new Array(); а я эррэй написал с маленькой буквы... Ну вообщем пара тысяч нервных клеток сгорела...
ваще по javaScript советую на w3schools.com идти ) да и CSS там же, очень, довольно таки, совсем даже, ага, не плохо описан )
2 Author: хм.... поройся здесь...... http://ermak.cs.nstu.ru/ там есть неплохие доки....... если дома остались доки, я тебе кину.... я когда-то в этом универе учился =)))))
тоже чтоли кинуть пару ссылочек??? может кому пригодится
искал мануал по JavaScript нашел вот это.
тоже немношко о Java javaportal.ru
статьи по php web-coder.ru
Очень приятные, правельные и подробные уроки по верстке сайтов