gelöst ! Pfad komplett löschen per php

Alles, was PHP betrifft, kann hier besprochen werden.

Postby Scory » 08. January 2008 22:22

Oepfel wrote:Ah ok wieder etwas dazugelernt.

Habe dort auch das von Dir angesprochene Script gefunden:
Code: Select all
<?php
// ggarciaa at gmail dot com (04-July-2007 01:57)
// I needed to empty a directory, but keeping it
// so I slightly modified the contribution from
// stefano at takys dot it (28-Dec-2005 11:57)
// A short but powerfull recursive function
// that works also if the dirs contain hidden files
//
// $dir = the target directory
// $DeleteMe = if true delete also $dir, if false leave it alone

function SureRemoveDir($dir, $DeleteMe) {
    if(!$dh = @opendir($dir)) return;
    while (false !== ($obj = readdir($dh))) {
        if($obj=='.' || $obj=='..') continue;
        if (!@unlink($dir.'/'.$obj)) SureRemoveDir($dir.'/'.$obj, true);
    }

    closedir($dh);
    if ($DeleteMe){
        @rmdir($dir);
    }
}

//SureRemoveDir('EmptyMe', false);
//SureRemoveDir('RemoveMe', true);

?>


Jedoch bleibt es ohne erfolreiche Löschung. Kann das evtl damit zusammenhängen, dass ich einen Windows Server nutze ?

mfg


Nein.

Wahrscheinlicher ist, dass Du das Script gar nicht ausführst. Wie hast Du es denn eingebaut in Dein Script?
Scory
 

Postby Oepfel » 08. January 2008 22:26

Ich habe den Wert $path definiert (sonst weiss er ja nicht wo er was löschen soll).

Code: Select all

function SureRemoveDir($dir, $DeleteMe) {
    if(!$dh = @opendir($dir)) return;
    while (false !== ($obj = readdir($dh))) {
        if($obj=='.' || $obj=='..') continue;
        if (!@unlink($dir.'/'.$obj)) SureRemoveDir($dir.'/'.$obj, true);
    }

    closedir($dh);
    if ($DeleteMe){
        @rmdir($dir);
    }
}


und fertig, ! oder habe ich was übersehen ?

mfg
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Postby Oepfel » 08. January 2008 22:28

Korrektur natürlich den Wert $dir habe ich definiert. Shon soviel experimentiert heute :shock:

mfg
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Postby Oepfel » 08. January 2008 22:55

Habe soeben mal etwas rumgespielt und ich denke etwas komisches gefunden zu haben !

Wenn ich den Pfad den ich löschen will auslese und mir den Inhalt anzeigen lasse, dann zeigt er mir die Ordner nicht als Ordner, sonder als Datei an !

Was es für ein Script natürlich schwer macht zu sagen: Das ist ein Ordner, mach den auf und lösche was darin ist usw.

Mist
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Postby Scory » 09. January 2008 00:17

Zeig doch einfach mal Dein VOLLSTÄNDIGES Script, welches nicht funktioniert. Das sagt mehr als tausend unnütze Worte.
Scory
 

Postby Oepfel » 09. January 2008 00:22

Code: Select all
<?php

if (empty($page)){
$page = 0;
}
$record = 100;

error_reporting(E_ALL);

if ($Delordner==$admin_yes) {
$userinfo = $db->getpath($cid);
$path = $userinfo[0]['path'];

}




das ist mein Anfang. dann sollte das löschen des Ordners mitsamt den Inhalt folgen. Bin nebenbei noch etwas am experimentieren, um eine richtige Unterscheidung zwischen Ordner und Datei zu bekommen.
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Postby Oepfel » 09. January 2008 00:43

So es geht !!!

Habe einen einfachen Fehler in meinem Script entdeckt. Man sollte solche sachen doch nicht machen, wenn man nicht richtig gesund ist.

Danke an Scory für gedankliche Unterstützung.

Hier das richtige Script:

Code: Select all
<?php

if (empty($page)){
$page = 0;
}
$record = 100;

error_reporting(E_ALL);

if ($Delordner==$admin_yes) {
$userinfo = $db->getpath($cid);
$path = $userinfo[0]['path'];

}
$DeleteMe=('true');

function SureRemoveDir($path, $DeleteMe) {
    if(!$dh = @opendir($path)) return;
    while (false !== ($obj = readdir($dh))) {
        if($obj=='.' || $obj=='..') continue;
        if (!@unlink($path.'/'.$obj)) SureRemoveDir($path.'/'.$obj, true);
    }

    closedir($dh);
    if ($DeleteMe){
        @rmdir($path);
    }
}
SureRemoveDir($path, $DeleteMe);


mfg
Oepfel
User avatar
Oepfel
 
Posts: 78
Joined: 10. October 2006 23:16
Location: Wendelstein

Previous

Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests