löschen von dateien....

noname

Mitglied
Hallo @ all

Hab folgendes Problem :
------------------------
Ich habe mir ein Galleryscript geschrieben...Jetzt zu meiner speziellen Funktion;

Ich möchte, wenn jemand auf die Taste "Gallery löschen" klickt, dass das Scipt alle Bilder aus der Datenbank zu der speziellen Gallery löscht, danach die Gallery aus der Datenbank entfernt und dann alle Bilder dieser Gallery vom Server löscht...Also die hochgeladenen Bilddateien...

Das mit den Datenbank Einträgen löschen ist nicht das Problem, nur dass er alle Dateien löscht, dass bekomme ich nicht hin...

Die Dateinamen sind folgendermaßen aufgebaut :

$cat_id-$filename

z.B. :

$cat_id = 2;
$filename = logo.jpg;

dann wäre die datei : 2-logo.jpg

Er soll bei dem Löschen-Befehl also alle Bilder, die mit der ID "2" Anfangen löschen...Kann mir einer sagen, wie man das machen kann ??

Bei mysql geht das ja ganz einfach mit dem LIKE Befehl, aber beim Dateisystem hab ich keine Ahnung wie ich da machen kann...

Please help me out ;)
 
es wäre wichtig zu wissen wie die verzeichnisstruktur aussieht.

Ich nehme jetzt mal an alle bilder sind im selben ordner

es gibt also zb 4 dateien

2-erstesbild.jpg
2-zweitesbild.jpg
3-einbild.jpg
3-nocheinbild.jpg

Ich würde mit einer schleife durch das verzeichnis gehen

PHP:
<?
$gallery = 2; //diesen wert bekommst du halt durch ein formular o.ä.

$open = opendir("gallery");
while(false !== ($file = readdir($open))){
	if(preg_match("/^".$gallery.".*/", $file))
		unlink($file);
}
?>

das regexp trifft halt auf alle files zu die mit 2 beginnen, wenn das genau genug ist kannst du es so hernehmen.
 
hmm, ich stell mich ja sonst nicht so blöd an, aber mit dem dateisystem hab ich irgendwie krasse probs..

zu deiner frage :

ja, alle bilder sind in einem ordner...

kannst du mir vielleicht deinen script nochmal genauer beschreiben, was jede zeile für sich gedeutet, sodass ich ihn in mein script integrieren kann ?!

wäre sehr nett..

zur zweiten antwort :

da war ich schon...da ist nicht genau die antwort, die ich brauche...

und ich versteh da nur bahnhof zum thema unlink...

ok thx fürs schnelle antworten
 
also wenn du schreibst

PHP:
<?
unlink("meinbild.jpg");
?>

wird die datei "meinbild.jpg" gelöscht.

wenn du jetzt

PHP:
<?
$ordner = "/bilder/";
$cat_id = 2; 
$filename = logo.jpg; 

unlink($ordner.$cat_id."-".$filename);
?>

schreibst wird die datei "2-logo.jpg" im "bilder" ordner gelöscht.
 
das ist ja garnicht mein probem...das ist ja nicht so schwer ;)

aber les dir meinen text oben nochmal genau durch, dann wirst du sehen, dass nicht das löschen eines einzelnen bildes mein problem ist, sondern das löschen einer gruppe von bildern, wo der dateiname mit der id, der kategorie anfängt...

das löschen eines einzelnen bildes hab ich schon längst hinbekommen, das war ne sache von 5 min. aber eben das mit der ganzen bildergruppe nicht....

please help me
 
ja das macht genau mein script

ich kanns nochmal erklären

PHP:
<?
$gallery = 2; //diesen wert bekommst du halt durch ein formular o.ä.

$open = opendir("gallery"); //öffnet das verzeichnis (muss angepasst werden mit dem pfad, wo die bilder sind)
while(false !== ($file = readdir($open))){ //startet eine schleife, die das geöffnete verzeichnis ausliest. $file ist immer die aktuelle datei.
    if(preg_match("/^".$gallery.".*/", $file)) //falls $file mit $gallery anfängt...        
unlink($file); //lösche $file
}
?>

einfach die funktionen auf php.net nachschauen!
 
Zurück