28. oktober 2005 - 10:37
Der er
15 kommentarer og 1 løsning
Sletning ved hjælp af RMDIR
Er der nogle som har en fungerende rmdir() kode som går ind og sletter en mappe + alt hvad der ligger i mappen?
Annonceindlæg fra Admin By Request
28. oktober 2005 - 11:23
#2
Hvad for en er bedst at bruge?
28. oktober 2005 - 11:25
#3
Har ikke testet nogen af dem, men denne falder mig da først i øjnene: function rmdirr($dir) { if($objs = glob($dir."/*")){ foreach($objs as $obj) { is_dir($obj)? rmdirr($obj) : unlink($obj); } } rmdir($dir); } Og umiddelbart ser det da ikke tosset ud :)
28. oktober 2005 - 11:33
#4
Nej den er heller ikke så lang .. haha :D
28. oktober 2005 - 11:43
#5
Skal den bruge hele stien .. altså fra roden af? eller tror du den kan nøjes med "../filer/mappe"?
28. oktober 2005 - 11:52
#6
Du bør kunne nøjes med ../filer/mappe - men du må jo prøve det af. Den skal nok brokke sig, hvis den ikke kan finde biblioteket.
28. oktober 2005 - 12:01
#7
Hmm det virker ik helt.. det ser sådan her ud nu: <?php require "db.php"; //Hvis der bliver trykket ja if (isset($_POST['ja'])) { $sti_start = $_SERVER["DOCUMENT_ROOT"]; $sti = str_replace("..", "", $sti); $sti_hel = $sti_start ."/djmini". $sti; $dir = $sti_hel; function rmdirr($dir) { if($objs = glob($dir."/*")){ foreach($objs as $obj) { is_dir($obj)? rmdirr($obj) : unlink($obj); } } rmdir($dir); } header("Location:slet_gal_valg.php"); } ?> Men den sletter ikke mappen på serveren :/
28. oktober 2005 - 12:07
#8
Den brokker sig heller ikke hvis jeg nøjes med at sige: require "db.php"; //Hvis der bliver trykket ja if (isset($_POST['ja'])) { $dir = $_POST['sti']; function rmdirr($dir) { if($objs = glob($dir."/*")){ foreach($objs as $obj) { is_dir($obj)? rmdirr($obj) : unlink($obj); } } rmdir($dir); } header("Location:slet_gal_valg.php"); } ?>
28. oktober 2005 - 12:13
#9
Lad være med at smide alt muligt andet (pt. unødigt) fis ind i testefasen :) Test det som jeg pastede det fra php.net.
28. oktober 2005 - 12:16
#10
Jamen det har jeg.. det er jo sådan set if (isset($_POST['ja'])) { $dir = $_POST['sti']; function rmdirr($dir) { if($objs = glob($dir."/*")){ foreach($objs as $obj) { is_dir($obj)? rmdirr($obj) : unlink($obj); } } rmdir($dir); } } - altså uden header
28. oktober 2005 - 12:18
#11
Prøv: if (isset($_POST['ja'])) { function rmdirr($dir) { if($objs = glob($dir."/*")){ foreach($objs as $obj) { is_dir($obj)? rmdirr($obj) : unlink($obj); } } rmdir($dir); } rmddirr($_POST['sti']); }
28. oktober 2005 - 12:28
#12
så siger den: Fatal error: Call to undefined function: rmddirr()
28. oktober 2005 - 12:30
#13
Det er jo fordi jeg har sat et d for meget ind -> rmdirr og ikke rmddirr
28. oktober 2005 - 12:34
#14
Griner ja det så jeg også lige.. men nu sletter den fint :)
28. oktober 2005 - 12:36
#15
Fint, så vil jeg tillade mig at smide et svar :)
28. oktober 2005 - 12:45
#16
Det er helt i orden.. Tak for det! -lukket-
Vi tilbyder markedets bedste kurser inden for webudvikling