Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum.
Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden.
Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
verwijder files uit map ouder dan 1 minuut
Ik ben hier aan het testen met een script dat bestanden ouder dan 1 minuut uit de map test moet verwijderen.
Wat gebeurt er: bestanden worden direct verwijderd, al staan ze er slechts enkele seconden in de map.
Wat gaat er hier fout?
Wat gebeurt er: bestanden worden direct verwijderd, al staan ze er slechts enkele seconden in de map.
Wat gaat er hier fout?
<?php
$files = array();
$index = array();
$deletetime = strtotime('+60 seconds');
if ($handle = opendir('uploads/test')) {
clearstatcache();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$files[] = $file;
$index[] = filemtime( 'uploads/test/'.$file );
}
}
closedir($handle);
}
asort( $index );
foreach($index as $i => $t) {
if($t < $deletetime) {
@unlink('uploads/test/'.$files[$i]);
}
}
?>
Getagd:
Login of Registreer om te reageren.
Reacties
Is het niet dat je ook de huidige tijd moet aangeven, en dan +60 ?
Doe eens echo $deletetime
Ik heb nu deze code en die werkt perfect:
Nu alleen nog ervoor zorgen dat het script automatisch blijft draaien en niet handmatig hoef aan te klikken
Geen optie om hem om de 10 minuten te laten draaien.
Dan kun je gewoon elke X-tijd een cronjob aanroepen voor dat script.
In het enorm fout uitgelegd, is een cronjob een 'bezoeker' die op X-tijd een bepaalde pagina bezoekt/script aanroept.
Ik heb ook wa dingen met cronjobs gedaan, en het lastigste vond ik het juiste pad naar het bestand vinden (want dat zijn de meest absolute urls die je kan verzinnen)
Er bestaat geloof ik ook nog een duitste site die cronjobs simuleert, maar of je daarop moet vertrouwen laat ik aan jezelf over.
anyway, cronjobs is je keyword
edit2,
Mocht je jezelf wat ingelezen hebben over cronjobs, dan kun je je php script zelfs nog wat versimpelen....
Je laat die cron elke minuut uitvoeren, en laat die gewoon alles deleten wat meer dan een minuut oud is.
Schrijf gewoon je php script en verder is het een regeltje aanmaken met de juiste tijden en path, en klaar
in Direct admin op de index onder de link cronjobs, uitleg staat erbij.
Elke keer dat script aanroepen middels de index is echt z????r zware overkill en nutteloze rekenkracht.
Ik denk dat je je scriptje een keer per nacht aanroept, je je server matst ;-)
Ik kan hem natuurlijk handmatig aanklikken eke dag maar dat ga ik vergeten.
Daarom ga ik toch maar met jouw optie aan de slag...even kijken hoe dat met die cronjobs werkt 8-|
@ReneV: ja de verwijzingen van de bijlages worden in de database opgeslagen; ik moet gaan oppassen dat ik sec de map leeg van tijd tot tijd waar ook de bijlages alleen in staan, niet dat dadelijk iemand zin avatar kwijt is :-O :-O :-O
Als een bezoeker dan uitlogt, laat hem dan kijken naar de database of deze bezoeker files heeft geupload die ouder zijn dan ... dagen of dergelijk, zo ja dan wissen.
Want als ze in de database staan, en jij wist ze door een scriptje uit een bepaalde map, dan staat je database dadelijk vol met dode links.
er is wel tijdstip aan gekoppeld; hieronder een SQl dump van de media:
Heeft hij dit gevonden, zet er dan eerst iets van unlink path, en dan delete de data