[php] images delete uit een andere directory

Pagina: 1
Acties:

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
in een CMS heeft de klant de mogelijkheid om images toe te voegen.
Ok, dat werkt.
Waar ik nu op stukloop is het verwijderen van de images als het project verwijdert wordt.

met onderstaande code kreeg ik het wel voor elkaar om, in de directory waar het php-bestand instaat, alle files beginnend met het id-nummer te verwijderen.
Maar ik kom er nu ff niet uit hoe ik ze in een directory een aantal levels lager te verwijderen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
## begin plaatjes deleten
    
if (!$dir) {
     
        $dir = dir("../../uploaded");
}

$pad=opendir($dir->path);
chdir($pad);
while ($file = readdir($pad)) {
    if($file != '..' && $file !='.' && $file !=''){
     
             if(ereg("^".$id."_",$file)){ 
                   
                        echo $file."<br>";
                        
                        if(!unlink){
                        
                            echo"Bestand ".$file."kon niet verwijderd worden";
                            
                        }else{ 
                            
                            unlink($file);
                            
                        }
                        
                    }
         
        
    }
}

## einde plaatjes deleten


closedir($pad);
clearstatcache();

FYI: het script is bij elkaar geleeched aangezien mijn niveau van php'en nog laag is;
zeker wat betreft bewerkingen op bestanden ;)

www.jurgroessen.nl


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Waar dient "if (!unlink) {" voor denk jij?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Maak een recursieve functie die een dir verwijdert.
Met de functie is_dir() kan je checken of een bestandsnaam een directory is of niet, zo ja -> roep functie aan met als paramete de nieuwe directory.

http://www.php.net/manual/en/function.is-dir.php

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
Op dinsdag 12 maart 2002 17:56 schreef Janoz het volgende:
Waar dient "if (!unlink) {" voor denk jij?
om m'n computer te formatteren :+

ik zou denken: als unlink false is dan kan het plaatje niet verwijderd worden.

Wat is jouw visie daarop, want ik snap niet helemaal waar je heen wil..

Anyways; ik heb nu een werkend model en ik heb alleen wat in het begin gepookt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
if (!$dir) {
     
    $current_pad = getcwd();
       
    $pad = dir("blaat/");
    $dir = $pad->path;
    
}

$locatie=opendir($dir);
chdir($dir);
while ($file = readdir($locatie)) {

Orphix: 't gaat om een aantal files in een directory, geen hele directory..

www.jurgroessen.nl


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 12 maart 2002 18:22 schreef Hangloozz het volgende:
ik zou denken: als unlink false is dan kan het plaatje niet verwijderd worden.
En hoe weet die unlink daarzo nou over welk plaatje jij het hebt.. man.. zoals het daar staat is het geeneens een functie en zal php het waarschijnlijk als 1 of andere constante zien oid...

Zet om te beginnen maar ff je error reporting wat hoger, en dan zie je zelf wel wat er fout gaat.........

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
Op dinsdag 12 maart 2002 20:17 schreef Janoz het volgende:

En hoe weet die unlink daarzo nou over welk plaatje jij het hebt.. man.. zoals het daar staat is het geeneens een functie en zal php het waarschijnlijk als 1 of andere constante zien oid...

Zet om te beginnen maar ff je error reporting wat hoger, en dan zie je zelf wel wat er fout gaat.........
sorry hoor ;(, ik ga wel weer naar /13... :P

Toch is het vaag aangezien ik een deel van het script van een bestaand php-tooltje overgenomen hebt, en wat vrij over het net verspreidt wordt.
Dan zou je toch verwachten dat zulke 'fouten' er gaandeweg uit gefilterd worden.

Anyways, ik ben blij dat ik m'n disclaimer ff onder m'n eerste post gezet had, ik moet nog het een en ander leren wat voor jullie heel vanzelfsprekend is..

www.jurgroessen.nl


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Mischien was ik wel een beetje hard :).. Maar als je die if zou vervangen door:
PHP:
1
<?if(!unlink($file)){  echo"Bestand ".$file."kon niet verwijderd worden";}?>

zal het waarschijnlijk een stuk beter werken :).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
okee, ik zie nu wat je bedoelt: de !unlink sloeg nergens op omdat er geen object aan meegegeven was..

thnx, ik ga weer ff stoeien.

schiet me nog een ander punt te binnen:
als ik een bestand verwijder duurt het ongeveer een minuut voordat het ook daadwerkelijk weg is.
Is dat een voortvloeisel uit het feit dat we hier lokaal php/apache onder Windows draaien?
Bij de online versie die op een Unix-server draait is het me nog niet opgevallen namelijk.

www.jurgroessen.nl

Pagina: 1