Hej!
Skulle vilja ha en funktion som raderar en undermapp och dess innehåll utan att radera den mapp som undermappen ligger i. Är det någon som vet hur man löser det här?
6 svar · 640 visningar · startad av Trankan
Hej!
Skulle vilja ha en funktion som raderar en undermapp och dess innehåll utan att radera den mapp som undermappen ligger i. Är det någon som vet hur man löser det här?
kolla detta exemplet:
http://se2.php.net/manual/en/function.rmdir.php#82764
sitter du på *unix kan du köra system("rm -rf undermapp/");
Testade faktiskt just det exemplet, men det raderar även den mapp som undermappen ligger i. :l
använd funktionen is_dir() för kolla om filen är en mapp. Är filen en mapp får du välja att inte radera ut den.
te.x
if!(is_dir($var)){
rm_dir($var) }
else {
//gör ingenting
}
Förstår inte riktigt? Mappen som sökvägen går till ska ju tas bort, men grejen är den att mappen inte ligger i roten på FTP:n utan i en annan mapp som ska vara kvar. Det kan även tilläggas att PHP-filen med scriptet ligger inte i samma mapp som den mapp som ska tas bort.
Något i den här stilen bör ju fungera
<?php
function delete_dir_content($path, $delete_files=false) {
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if(is_dir($file)) {
delete_dir_content($path.$file, true);
rmdir($path.$file);
}
elseif($delete_files) {
unlink($file);
}
}
closedir($handle);
}
}
?>
Om detta blev rätt nu så raderar funktionen alla undermappar och dess innehåll, filerna i mappen behålls dock. Vill du radera allt i mappen så anropar du delete_dir_content('mapp/', true); vill du enbart radera alla undermappar anropar du delete_dir_content('mapp/');
// Vic
Tack för svaret Vic! Vet inte om jag var otydlig, men det kommer att finnas flera undermappar och jag vill kunna radera en specifik mapp, så jag misstänker att din funktion inte fungerar så bra?