Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]usuwanie katalogu wraz z plikami
Forum PHP.pl > Forum > Przedszkole
glasswalker
Już po poprawieniu - czyli na razie działa jak powinien.
CODE
  1. <?php
  2. function delDir($dir)
  3. {
  4. if(!$fd=opendir($dir))
  5. {
  6. return false;
  7. }
  8. else
  9. {
  10. while(($file=readdir($fd))!==false)
  11. {
  12. if($file=="."||$file=="..") continue;
  13. if((is_dir("$dir/$file")))
  14. {
  15. delDir("$dir/$file");
  16. rmdir("$dir/$file");
  17. }
  18. else if(is_file("$dir/$file"))
  19. {
  20. unlink("$dir/$file");
  21. }
  22. }
  23. closedir($fd);
  24. }
  25. }
  26. delDir("ppp1");
  27. ?>
vokiel
Pomyśl co się dzieje w tym fragmencie kodu?
  1. if(is_dir("$dir/$file"))
  2. {
  3. delDir("$dir/$file");
  4. rmdir("$dir/$file");
  5. }
Czy kiedykolwiek funkcja dochodzi do rmdir ?
glasswalker
Teoretycznie sprawdza czy dany plik jest katalogiem i jeśli jest to wywołuje samą siebie tylko z innymi parametrami. (mam nadzieję że nie wywołuje siebie samej). Po sprawdzeniu (za-komentowaniu delDir,rmdir oraz unlink i wrzuceniu w pętle tego dira echa) okazuje się że on do tego if-a w ogóle nie wchodzi (do while wchodzi 3 razy).

Podejrzewam że jakąś pętle nieskończoną też przy okazji stworzyłem winksmiley.jpg
chyba while mam zwalony - $file miał 4 razy wartość 1.
po poprawieniu while(($file=readdir($fd))!==false)
sprawdzę resztę - może teraz będzie działać teoretycznie w porządku.
W każdym bądź razie volker dzięki bo nakierowałeś mnie delikatnie na problem (pomógł kliknięte).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.