Avatar billede RasmusTheR Seniormester
05. december 2016 - 20:57 Der er 4 kommentarer og
2 løsninger

foreach ud fra dato

Kan man få foreach til at vælge alle filer som er fx ældre end 7 dage?

Jeg arbejder ud fra følgende:
foreach (glob("*.jpg") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
Avatar billede arne_v Ekspert
05. december 2016 - 21:05 #1
Avatar billede olsensweb.dk Ekspert
05. december 2016 - 21:17 #2
>Kald stat for hver fil.
eller filemtime
http://php.net/manual/en/function.filemtime.php
Avatar billede arne_v Ekspert
06. december 2016 - 00:45 #3
God pointe.

filemtime($f) er mere laeselig end stat($f)['mtime'] og der er formentlig kun gamle C/C++ programmoerer som finder den sidste.
Avatar billede arne_v Ekspert
06. december 2016 - 00:53 #4
Saa:


foreach(array_filter(glob('*.jpg'), function($f) { return filemtime($f) < time() - 7*24*60*60; }) as $filename) {
    ...
}
Avatar billede olsensweb.dk Ekspert
06. december 2016 - 10:55 #5
jeg ville smide beregningen af referance tiden ud af loopet, der er jo ikke grund til at lave beregningen for hver fil, og lave en if inde i loopet

<?php
$time_ref = time() - (7*24*60*60);
foreach (glob("*.*") as $filename) {
    if(filemtime($filename) - $time_ref>0 ){
        echo "$filename size " . filesize($filename) . "<br>\n";   
    }
    else{
        echo $filename . " for gammel <br>\n";
    }
}
?>   


glob("*.*")
skal selvføgelig være det filter du selv ønsker
glob("*.jpg")
Avatar billede RasmusTheR Seniormester
07. december 2016 - 21:06 #6
1000-tak for hjælpen :-)
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

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