2013-05-30 3 views
0

Я работаю над скриптом, который будет отображать все файлы и создавать ссылки в каталоге-указателе, но я хочу, чтобы последняя загрузка была в верхней части списка. Я искал этот сайт, ища ответ или аналогичный вопрос, но ничего не придумал.Показать все файлы в каталоге с самыми последними ссылками:

Вот код, который я до сих пор:

<?php 
$dir = opendir('files/'); 
while ($read = readdir($dir)) 
{ 
if ($read!='.' && $read!='..') 
{ 
echo '<ul style="list-style: none;"><li><a href="files/'.$read.'"target="_blank"><FONT COLOR="#0196e3">'.$read.'</a></li></ul>'; 
} 
} 
closedir($dir); ?> 

Я был бы признателен за любую помощь или предложения.

ответ

0

Храните файлы в массиве с последним измененным временем, а затем закажите массив перед его отображением. Попробуйте ниже, непроверенный:

$dir = opendir('files/'); 
$fileArray = array();  

while ($read = readdir($dir)) 
{ 
    if ($read!='.' && $read!='..') 
    { 
     // Get the time this directory was last edited and store it in an array 
     $fileArray[] = array('fileName' => $read, 'lastModified' => filemtime($dir)); 
    } 
} 

closedir($dir); 

// Sort the files 
$usort($fileArray, 'compareFiles'); 

foreach($fileArray as $file) 
{ 
    // files sorted now - display them here 
} 

// Compares the files - see: http://www.php.net/manual/en/function.usort.php 
function compareFiles($a, $b) 
{ 
    if ($a[lastModified] == $b[lastModified]) { 
     return 0; 
    } 
    return ($a[lastModified] < $b[lastModified]) ? -1 : 1; 
} 
+0

Я получаю сообщение об ошибке в этой строке $ fileArray [] = array ('fileName' => $ read, 'lastModified' => filemtime ($ dir)); – h4ck3r

+0

@Redstone «Я получаю сообщение об ошибке» не помогает. Какая ошибка? Этот код не проверен, но он должен дать вам представление о том, как решить вашу проблему. Я прокомментировал это со ссылками на дальнейшее чтение. Вы должны попытаться понять, как решить эту проблему, а не просто копировать ее и вставлять ее вслепую. Скажи мне, в чем была ошибка, и я посмотрю. – dKen

+0

Я читаю «filemtime» и «usort» прямо сейчас. Думаю, это может быть то, что мне нужно, но каждый раз, когда я его использую, я получаю следующую ошибку (filemtime() ожидает, что параметр 1 будет строкой). – h4ck3r

0

Я использую scandir. Описание в следующем.

+0

Как это сортировать по последнему измененному времени? – dKen

Смежные вопросы