Jak to zrobić? Czy istnieje metoda dostarczona przez kohana 3?PHP usunąć zawartość katalogu
Odpowiedz
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);
}
?>
$ pliki = glob ($ dir. '*', GLOB_MARK); -> Proszę wyjaśnić tę linię. Dzięki. –
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 * " –
A jeśli chcesz usunąć tylko zawartość folderu - nie sam folder - usuń linię' rmdir ($ dir); ' – PaulSkinner
próbowałeś unlink w katalogu?
chdir("file");
foreach (glob("N*") as $filename)
{
unlink($filename);
}
to usunięcie nazw rozpoczynając od N
nie jestem pewien o Kohana 3, ale chcę używać DirectoryIterator()
i unlink()
w połączeniu.
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);
}
}
co to jest kohona 3? – Moshe
To jest framework PHP, chociaż to pytanie tak naprawdę nie ma z tym nic wspólnego, retagged. –