Avatar billede eds Nybegynder
28. marts 2006 - 19:44 Der er 6 kommentarer og
1 løsning

Sortere nyheder efter dato

Hey, jeg har følgende php-script:

<?
$handle=opendir('./admin/news');
while (false !== ($file = readdir($handle))) {
    if($file != "." && $file != "..") {
echo "<b>". substr($file, 0, -4) ."</b><br>";
$ourFileName = "./admin/news/$file";
ReadFile($ourFileName);
echo "<hr>";
    }
}
closedir($handle);
?>

Det er et txt-fil-baseret nyhedssystem som jeg har arbejdet lidt på, men problemet er at den sorterer nyhederne i alfabetisk orden. Men den skulle jo helst sortere efter dato, så det er den nyeste nyhed der kommer først ;)

Er der nogen her som kan hjælpe mig med at få den til at sortere nyhederne korrekt?

På forhånd rigtig mange tak :)
Avatar billede coderdk Praktikant
28. marts 2006 - 19:56 #1
Hvad med:

<?
$news = array();
$dir = './admin/news';
$handle=opendir($dir);
while (false !== ($file = readdir($handle))) {
    if($file != "." && $file != "..") {
      $news[$file] = filemtime($dir."/".$file);
    }
}
closedir($handle);
arsort( $news );
foreach ( $news as $fil )
{
  echo "<b>". substr(basename($fil), 0, -4) ."</b><br>";
  ReadFile($fil);
  echo "<hr>";
}
?>
Avatar billede coderdk Praktikant
28. marts 2006 - 19:57 #2
ej vent:

<?
$news = array();
$dir = './admin/news';
$handle=opendir($dir);
while (false !== ($file = readdir($handle))) {
    if($file != "." && $file != "..") {
      $news[$file] = filemtime($dir."/".$file);
    }
}
closedir($handle);
arsort( $news );
foreach ( $news as $fil => $tid )
{
  echo "<b>". substr(basename($fil), 0, -4) . " " . date( "d/m-Y H:i:s", $tid ) . "</b><br>";
  ReadFile($fil);
  echo "<hr>";
}
?>

Så er der også dato ;)
Avatar billede eds Nybegynder
28. marts 2006 - 19:59 #3
Ser rigtig nok ud med sorteringen, men nu læser den bare ikke hvad der står i filerne mere http://www.hallofgame.dk/test/news.php :p ?
Avatar billede eds Nybegynder
28. marts 2006 - 21:17 #4
Er der virkelig ingen der kan forklare mig hvad der er galt :( ?
Avatar billede coderdk Praktikant
28. marts 2006 - 22:14 #5
ReadFile($fil);

skulle være

ReadFile($dir."/".$fil);
Avatar billede coderdk Praktikant
28. marts 2006 - 22:15 #6
Alternativt skulle

$news[$file] = filemtime($dir."/".$file);

være:

$news[$dir."/".$file] = filemtime($dir."/".$file);
Avatar billede eds Nybegynder
28. marts 2006 - 22:17 #7
aah mange tak! :) Det funger!
Herhar du dine point;)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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