directory uitlezen en sorteren op datum aanmaak bestanden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Andy De Clercq

Andy De Clercq

18/09/2009 09:56:00
Quote Anchor link
Hallo,
Ik heb een systeem ontwikkeld om een directory op een ftp server uit te lezen en daarna een lijst te geven met links aan te maken.
Momenteel is deze lijst identiek gesorteerd als de bestanden binnen de directory. Maar ik had graag gewild dat het nieuwste bestand bovenaan de lijst staat.
Zelf zocht ik al met de funcite sort() maar volgens mij brengt dit weinig soelaas.
Zou het misschien mogelijik zijn om bij het uitlezen van de directory de datum van aanmaak van het bestand mee te nemen, en dan daarop te sorteren?
Alvast bedankt voor de hulp!
 
PHP hulp

PHP hulp

25/11/2024 14:12:57
 
- SanThe -

- SanThe -

18/09/2009 10:46:00
Quote Anchor link
Zie de vele functies voor files op php.net. Onder andere filemtime().
 
Andy De Clercq

Andy De Clercq

07/10/2009 23:22:00
Quote Anchor link
Zopas heb ik wat geprobeerd met die functie.
Voorlopig krijg ik enkel FALSE als return.
Werkt dit ook op een ftp met pdf bestanden?
In ieder geval bedankt voor de hulp!
 
Michael -

Michael -

08/10/2009 12:42:00
Quote Anchor link
@Andy: Datum wanneer je bestand is aangemaakt/laatst gewijzigd kan je zo weergeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo date("d-m-Y H:i:s",filemtime($joubestand))
?>

Dan zou je dat samen met die file in een array moeten gooien ofzo en dan met sort er weer uithalen, misschien kan 't nog wel makkelijker.
 
Andy De Clercq

Andy De Clercq

08/10/2009 14:19:00
Quote Anchor link
Dat is inderdaad de bedoeling maar voorlopig vind hij mijn bestanden niet en kan ik dus de functie filemtime niet gebruiken. Maar ik denk dat het wel zal lukken wanneer ik het volledige pad meegeef als argument binnen deze functie.
 
Jan Willem van der Veer

Jan Willem van der Veer

08/10/2009 15:03:00
Quote Anchor link
Ach, voor het sorteren heb je toch genoeg functies zou ik zo denken op php.net. En als je daar niet mee uitkomt, schrijf je toch je eigen functie?

Bijvoorbeeld usort, uksort of uasort.

Als je zeker weet dat alle bestanden op een andere tijd zijn gewijzigd zou je ook ongeveer het volgende kunnen overwegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$sDir
= './directory/';
$aFiles = Array();
if($rDh = opendir($sDir)){
  while(is_string($sFile = readdir($rDh))){
    $files[filemtime($sDir.'/'.$sFile)] = $sFile;
  }
ksort($aFiles); # Sortering op tijd.
}
?>
 
Andy De Clercq

Andy De Clercq

10/10/2009 18:15:00
Quote Anchor link
Het is me gelukt!
eerst heb ik alles in een associative array gegoten.
vervolgens heb ik deze gesorteerd met rksort($array)
Bedankt voor de hulp, jullie hebben me goed geholpen!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.