Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php i usuwanie folderów
Forum PHP.pl > Forum > PHP
Edd_s
w php jest taka funkcjia: rmdir(nazwa) jest fajna bo usuwa katalog na serwerze o podanej nazwie, ale katalog musi być pusty, no właśnie w tym problem, czy jest jakaś funkcja kasująca folder z zawartością czy są jakieś inne sposoby albo ktoś ma jakiś pomysłquestionmark.gif dry.gif
ebe
unlink nie skasuje katalogu z plikami.

Do autora topicu, czasem bardzo owocne jest czytanie komentarzy w manualu. Jest tam piękny przykład, nie jestem jego autorem:


  1. <?
  2. function rmdirRecursive($path,$followLinks=false) {
  3.  
  4.  $dir = opendir($path);
  5.  while ( $entry = readdir($dir) ) {
  6.  
  7.  if ( is_file( &#092;"$path/$entry\" ) || ((!$followLinks) && is_link(\"$path/$entry\")) ) {
  8.  echo ( &#092;"unlink $path/$entry;n\" );
  9.  // Uncomment when happy!
  10.  //unlink( \"$path/$entry\" );
  11.  } elseif ( is_dir( &#092;"$path/$entry\" ) && $entry!='.' && $entry!='..' ) {
  12.  rmdirRecursive( &#092;"$path/$entry\" );
  13.  }
  14.  }
  15.  closedir($dir);
  16.  echo &#092;"rmdir $path;n\";
  17.  // Uncomment when happy!
  18.  // return rmdir($path);
  19. }
  20. ?>
Speedy
  1. <?php
  2. /**
  3.  * Delete a file, or a folder and its contents
  4.  *
  5.  * @author Aidan Lister <aidan@php.net>
  6.  * @version  1.0.2
  7.  * @param  string  $dirname Directory to delete
  8.  * @return bool  Returns TRUE on success, FALSE on failure
  9.  */
  10. function rmdirr($dirname)
  11. {
  12. // Sanity check
  13. if (!file_exists($dirname)) {
  14. return false;
  15. }
  16.  
  17. // Simple delete for a file
  18. if (is_file($dirname)) {
  19. return unlink($dirname);
  20. }
  21.  
  22. // Loop through the folder
  23. $dir = dir($dirname);
  24. while (false !== $entry = $dir->read()) {
  25. // Skip pointers
  26. if ($entry == '.' || $entry == '..') {
  27. continue;
  28. }
  29.  
  30. // Recurse
  31. rmdirr(&#092;"$dirname/$entry\");
  32. }
  33.  
  34. // Clean up
  35. $dir->close();
  36. return rmdir($dirname);
  37. }
  38.  
  39. ?>
esiek
<?////////////USUWA WSZYSTKIE PLIKI Z KATALOGU

$katalog = "$delete";

if(glob("$katalog/*")) //sprawdza czy katalog jest pełny. jezeli tak wyswietla ponizsza linię
{
foreach (glob("$katalog/*") as $filename){if($file != '$katalog' && $file != '..'){}unlink("$filename");}}

///////////USUWA KATALOG

rmdir("$delete");

echo"<P ALIGN=CENTER><img SRC=gfx/dobrze.jpg><br>Katalog został pomyślnie usunięty.</P>";
?>


Ja używam czegoś takiego winksmiley.jpg
tomek_
ja używam czegoś takiego 

Kod
 function DeleteDir($dir)
    {
     
        $fd = opendir($dir);
        if(!$fd) return false;
        while (($file = readdir($fd))!== false)
        {
            if($file =="." || $file== "..") continue;
            if(is_dir($dir."/".$file))
            {
                  DeleteDir($dir."/".$file);
            }
            else
            {
                unlink("$dir/$file");
            }
        }
        closedir($fd);
        rmdir($dir);
    }


usuwa katalog wraz z wszystkimi jego podkatalogami i plikami w nich zawartymi
webdice
Panowie to nie wykop. Temat zamykam.

~esiek na przyszłość korzystaj z bbcode.
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.