Lars_P Posted August 22, 2007 Share Posted August 22, 2007 Hi I'm kind of new to this so please be gentle... I've got hold of a php script which scans a directory on my server looking for mpeg's. When/if it finds some we do this: // read through the directory and filter files to an array @$d = dir($directory); if ($d) { while($entry=$d->read()) { $ps = strpos(strtolower($entry), $filter); if (!($ps === false)) { $items[] = $entry; } } $d->close(); sort($items); } .... it then returns me an xpsf-formatted playlist, which is what I'm trying to achieve. My questions: how do I modify the scan and sort to return only the last "n" items uploaded to the folder by date? Then I throw in a dozen new items and bingo, I have a new 12-item playlist. I'd then like to create sorts with offsets: eg the previous n tunes before the last n, so people can get this month's dozen, last month's dozen, etc. Thanks for your help! Lars Link to comment https://forums.phpfreaks.com/topic/66134-scan-a-dir-and-sort-last-n-items-by-date/ Share on other sites More sharing options...
Psycho Posted August 22, 2007 Share Posted August 22, 2007 The difficulty here is that without saving the list of files to a database to keep track of when things were added it is difficult to know when something was added. The only option I could think of was to sort them by the last modified date. I decided to go with the glob() function which returns an array of files that match a pattern. If you have several types of 'patterns' you may be able to use mutiple patterns in the functions, not sure though. If not, I would just create a function that takes a list of patterns and run through the list recursively to create the list before sorting. <?php $directory = "."; foreach (glob("$directory/*.mpg") as $filename) { //Create an array with the last modified date as the index $fileArray[filemtime($filename)] = $filename; } //Sort the array (in reverse) by the index (last mod date, newest first) krsort($fileArray); //Reduce the array to $n items $n = 12; $fileArray = array_slice($fileArray, 0, $n); ?> Link to comment https://forums.phpfreaks.com/topic/66134-scan-a-dir-and-sort-last-n-items-by-date/#findComment-330967 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.