adamdixon-idooh Posted July 5, 2012 Share Posted July 5, 2012 Hi, I am creating a PHP page that will display files in an upload folder so users can then view or download the files but I want to be able to sort them by name or by upload date. The code below is to display and link to the files in the upload folder but no matter what I can't get it to sort. Any help would be appreciated. <body> <?php if ($handle = opendir('images/clients/')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $thelist .= '<a href="images/clients/'.$file.'">'.$file.'</a> <br/><br/>'; } } closedir($handle); } ?> <P>List of files:</p> <P><?=$thelist?></p> </body> Quote Link to comment https://forums.phpfreaks.com/topic/265231-sort-list-by-name-or-date/ Share on other sites More sharing options...
Barand Posted July 5, 2012 Share Posted July 5, 2012 Store the files and dates in an array, not a string.Arrays can be sorted. $files[$name] = $filedate; Quote Link to comment https://forums.phpfreaks.com/topic/265231-sort-list-by-name-or-date/#findComment-1359264 Share on other sites More sharing options...
adamdixon-idooh Posted July 5, 2012 Author Share Posted July 5, 2012 Thanks for the reply but my knowledge of PHP is limited. Where would I turn the string into an array? Quote Link to comment https://forums.phpfreaks.com/topic/265231-sort-list-by-name-or-date/#findComment-1359265 Share on other sites More sharing options...
Barand Posted July 5, 2012 Share Posted July 5, 2012 <?php $files = array(); if ($handle = opendir('images/clients/')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $path = realpath($file); $files[$file] = date('Y-m-d', filemtime($path)); } } closedir($handle); } /************* * List by name **************/ ksort($files); foreach ($files as $file => $date) { echo '<a href="images/clients/'.$file.'">'.$file."</a> $date<br/><br/>"; } /************* * List by date *************/ asort($files); foreach ($files as $file => $date) { echo '<a href="images/clients/'.$file.'">'.$file."</a> $date<br/><br/>"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/265231-sort-list-by-name-or-date/#findComment-1359270 Share on other sites More sharing options...
adamdixon-idooh Posted July 5, 2012 Author Share Posted July 5, 2012 Thanks Barand that works perfectly. Quote Link to comment https://forums.phpfreaks.com/topic/265231-sort-list-by-name-or-date/#findComment-1359309 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.