2010-02-05 12 views
7

Jak to zrobić? Czy istnieje metoda dostarczona przez kohana 3?PHP usunąć zawartość katalogu

+1

co to jest kohona 3? – Moshe

+1

To jest framework PHP, chociaż to pytanie tak naprawdę nie ma z tym nic wspólnego, retagged. –

Odpowiedz

9

Aby usunąć katalog i całą tę zawartość, musisz napisać funkcję rekurencyjnego usuwania lub użyć już istniejącego.

Możesz znaleźć kilka przykładów w uwagach użytkownika na stronie dokumentacji rmdir; Na przykład, oto the one proposed by bcairns w sierpniu 2009 (cytowanie):

<?php 
// ensure $dir ends with a slash 
function delTree($dir) { 
    $files = glob($dir . '*', GLOB_MARK); 
    foreach($files as $file){ 
     if(substr($file, -1) == '/') 
      delTree($file); 
     else 
      unlink($file); 
    } 
    rmdir($dir); 
} 
?> 
+0

$ pliki = glob ($ dir. '*', GLOB_MARK); -> Proszę wyjaśnić tę linię. Dzięki. –

+0

Funkcja 'glob' * (patrz http://php.net/glob) * zwróci wszystkie pliki pasujące do wzorca - i' * 'dopasuje wszystkie pliki, co oznacza, że ​​glob zwróci listę wszystkich plików katalog wskazany przez '$ dir' ;; 'GLOB_MARK' oznacza" * Dodaje ukośnik do każdego zwróconego katalogu * " –

+2

A jeśli chcesz usunąć tylko zawartość folderu - nie sam folder - usuń linię' rmdir ($ dir); ' – PaulSkinner

0

próbowałeś unlink w katalogu?

 chdir("file"); 
    foreach (glob("N*") as $filename) 
     { 
     unlink($filename); 
     } 

to usunięcie nazw rozpoczynając od N

0

nie jestem pewien o Kohana 3, ale chcę używać DirectoryIterator() i unlink() w połączeniu.

4

Proponuję w ten sposób, prosty i bezpośredni.

$files = glob('your/folder/' . '*', GLOB_MARK); 
    foreach($files as $file) 
    { 
     if (is_dir($file)) { 
      self::deleteDir($file); 
     } else { 
      unlink($file); 
     } 
    }