Avatar billede kaspermb Nybegynder
06. april 2011 - 13:26 Der er 10 kommentarer og
1 løsning

Slet mappe og indhold med unlink()

Jeg har lavet denne kode som slette en mappe i min ftp men vil også have at den sletter alle filer i den valgte mappe. Kan regne ud at jeg skal bruge unlink() men ved bare ikke hvordan jeg får sat det ind i min kode.


--- Filen ---
<?php
$directory = $_GET['navn'];

if (rmdir("../image/$directory"))
{
    echo "<b>Galleriet belv slettet</b>";
}
else
{
    echo "<b>Galleriet kunne ikke slettes</b>";

?>
Avatar billede kentora Nybegynder
06. april 2011 - 13:43 #1
det her er ikke afprøvet, men tager alle filer i din mappe og sletter dem (burden den gøre)

<?php
$directory = $_GET['navn'];


$h = opendir("../images/" . $directory);

while(($file = readdir($h))!==false){
    if($file != "." && $file != ".."){
        unlink("../images/" . $directory . "/" . $value);
    }
}

if (rmdir("../image/" . $directory))
{
    echo "<b>Galleriet belv slettet</b>";
}
else
{
    echo "<b>Galleriet kunne ikke slettes</b>";

?>
Avatar billede kaspermb Nybegynder
06. april 2011 - 13:54 #2
Virker ikke helt melder disse to fejl

Warning: unlink(../image/asjkdasjkdask/) [function.unlink]: Is a directory in /home/magasens/public_html/admin/sletmappe_upload.php on line 26

Warning: rmdir(../image/asjkdasjkdask) [function.rmdir]: Directory not empty in /home/magasens/public_html/admin/sletmappe_upload.php on line 30

og det er efter at jeg lige har rettet ../images/ til ../image/
:)
Avatar billede kentora Nybegynder
06. april 2011 - 14:03 #3
Så du har mapper inden i dine mapper? ;)

så er det nemlig lidt mere komplekst.

Skriver lige igen
Avatar billede kaspermb Nybegynder
06. april 2011 - 14:07 #4
Ja, derfor at jeg har lavet dette i min kode:

$directory = $_GET['navn'];

if (rmdir("../image/$directory"))
Avatar billede kentora Nybegynder
06. april 2011 - 14:07 #5
Du kan bruge en funktion.

function deletedir($dir){
$h = opendir($dir);

while(($file = readdir($h))!==false){
    if($file != "." && $file != ".."){
        if(isdir($file)){
            deletedir($file);
        } else {
            unlink($dir . "/" . $value);
        }
    }
}
}

Jeg er ikke sikker på at den virker, men prøv
Avatar billede kentora Nybegynder
06. april 2011 - 14:09 #6
hov nej. Jeg lavede en fejl før.


        unlink("../images/" . $directory . "/" . $value);

skal rettes til

        unlink("../images/" . $directory . "/" . $file);
Avatar billede kaspermb Nybegynder
06. april 2011 - 14:12 #7
Øøøh... Hvordan skal den kode sidde sammen med dan gamle...?
Avatar billede kentora Nybegynder
06. april 2011 - 14:15 #8
tag koden fra #i ret dette:

        unlink("../images/" . $directory . "/" . $value);

skal rettes til

        unlink("../images/" . $directory . "/" . $file);
Avatar billede kaspermb Nybegynder
06. april 2011 - 14:19 #9
Det jeg mener er hvordan jeg kobler denne kode

while(($file = readdir($h))!==false){
    if($file != "." && $file != ".."){
        if(isdir($file)){
            deletedir($file);
        } else {
            unlink($dir . "/" . $value);
        }
    }
}
}

sammen med

<?php
$directory = $_GET['navn'];


$h = opendir("../images/" . $directory);

while(($file = readdir($h))!==false){
    if($file != "." && $file != ".."){
        unlink("../images/" . $directory . "/" . $value);
    }
}

if (rmdir("../image/" . $directory))
{
    echo "<b>Galleriet belv slettet</b>";
}
else
{
    echo "<b>Galleriet kunne ikke slettes</b>";

?>

Kan du ikke bare prøve at skrive koden... :)
Avatar billede kaspermb Nybegynder
06. april 2011 - 15:26 #10
Tak for hjælpen, ved ikke om du vil have min 5 point ellers lukker jeg den bare... :D
Avatar billede kentora Nybegynder
06. april 2011 - 17:12 #11
svar ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester