<?
$newdir = 'files';
chdir($newdir);
$dir=opendir('.');
while ($d = readdir($dir))
if (is_file($d)) {
$filesizename = array(" Байт", " KБ", " MБ", " ГБ", " TБ", " ПБ", " EБ", " ЗБ", " ЙБ");
$size = filesize($d);
echo '<tr><td><a href="files/'.$d.'">'.$d.'</a></td><td>'.round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i].'</td><td>'.date ('d.m.Y G:i:s', filemtime($d)).'</td><td align="center"><a href="log.php?del='.$d.'">удалить</a></td><td><form action="log.php" method="post"><input type="hidden" name="name" value="'.$d.'"><input type="text" name="new_name" size="25" maxlength="50" value=""><input type="submit" value="Go"></form></td></tr>';
подскажите как сделать чтобы файлы выводились от самого нового до самого старого. Заранее благодарен.
Спустя 27 минут, 49 секунд (9.10.2010 - 23:05) kovaldm написал(а):
Попробуй в имени файла указать время его создания.
Спустя 4 минуты, 32 секунды (9.10.2010 - 23:10) Demolution написал(а):
Цитата (kovaldm @ 9.10.2010 - 20:05) |
Попробуй в имени файла указать время его создания. |
Не думаю что оптимальным вариантом будет переименование всех файлов на сервере...
Спустя 6 минут, 38 секунд (9.10.2010 - 23:17) kovaldm написал(а):
Юзай функцию stat().
Спустя 26 минут, 4 секунды (9.10.2010 - 23:43) Demolution написал(а):
Цитата (kovaldm @ 9.10.2010 - 20:17) |
Юзай функцию stat(). |
мм.. а по точней, я что-то не понимаю как с помощью нее организовать сортировку..
Спустя 16 минут, 24 секунды (9.10.2010 - 23:59) kovaldm написал(а):
while($d = readdir($dir))
{
if(is_file($d))
{
$stat = stat($d);
$filelist[$stat[9]] = $d;
}
}
$filelist=ksort($filelist);//массив с отсортированными по дате создания именами файлов
Спустя 10 минут, 19 секунд (10.10.2010 - 00:09) Demolution написал(а):
Цитата (kovaldm @ 9.10.2010 - 20:59) |
while($d = readdir($dir)) |
Спасибо! Но выскакивает:
Warning: Cannot use a scalar value as an array in D:\www\l.php on line 155
Warning: ksort() expects parameter 1 to be array, boolean given in D:\www\l.php on line 156
Что-то никак не получается с моим слепить, сразу куча ошибок лезет...
Спустя 22 минуты, 42 секунды (10.10.2010 - 00:32) kovaldm написал(а):
<?php
$dir = opendir('.');
while($d = readdir($dir))
{
if(is_file($d))
{
$stat = stat($d);
$filelist[$stat[10]] = $d;
}
}
krsort($filelist);//массив с отсортированными по дате создания именами файлов
foreach($filelist as $k=>$v)
{
echo $k.'=>'.$v.'<br>';
}
У меня так работает.
Спустя 3 минуты, 56 секунд (10.10.2010 - 00:36) Demolution написал(а):
Цитата (kovaldm @ 9.10.2010 - 21:32) |
<?php У меня так работает. |
Так работает.. А в мой кусок деревянного кода это всунуть никак?
Спустя 2 минуты, 1 секунда (10.10.2010 - 00:38) Demolution написал(а):
Просто у меня вывод данных идет внутри а у Вас снаружи..
Спустя 9 минут, 55 секунд (10.10.2010 - 00:48) kovaldm написал(а):
$newdir = 'files';
chdir($newdir);
$dir = opendir('.');
$filesizename = array(" Байт", " KБ", " MБ", " ГБ", " TБ", " ПБ", " EБ", " ЗБ", " ЙБ");
while($d = readdir($dir))
{
if(is_file($d))
{
$size = filesize($d);
$stat = stat($d);
$filelist[$stat[10]] = '<tr><td><a href="files/'.$d.'">'.$d.'</a></td><td>'.
round($size/pow(1024, ($i = floor(log($size, 1024)))), 2)
. $filesizename[$i].'</td><td>'.date ('d.m.Y G:i:s', filemtime($d)).'</td>
<td align="center"><a href="log.php?del='.$d.'">удалить</a></td><td>
<form action="log.php" method="post">
<input type="hidden" name="name" value="'.$d.'">
<input type="text" name="new_name" size="25" maxlength="50" value="">
<input type="submit" value="Go"></form></td></tr>';
}
}
krsort($filelist);//массив с отсортированными по дате создания именами файлов
foreach($filelist as $k=>$v)
{
echo $v.'<br>';
}
Не представляю как отсортировать внутри. readdir() ''Возвращает имя следующего по порядку элемента каталога. Имена элементов возвращаются в порядке, зависящем от файловой системы.'' (с) php.su
Спустя 23 минуты, 28 секунд (10.10.2010 - 01:11) Demolution написал(а):
Цитата (kovaldm @ 9.10.2010 - 21:48) |
$newdir = 'files'; Не представляю как отсортировать внутри. readdir() ''Возвращает имя следующего по порядку элемента каталога. Имена элементов возвращаются в порядке, зависящем от файловой системы.'' (с) php.su |
Ооо!! То что нужно! Спасибо огромное!!

Плюс не могу поставить

Спустя 2 минуты, 47 секунд (10.10.2010 - 01:14) kovaldm написал(а):
Только одно НО! Если файл будет весить о байт - получится ошибка.
Спустя 12 минут, 52 секунды (10.10.2010 - 01:27) Demolution написал(а):
Цитата (kovaldm @ 9.10.2010 - 22:14) |
Только одно НО! Если файл будет весить о байт - получится ошибка. |
Это помоему не из-за сортировки?
Спустя 7 минут, 7 секунд (10.10.2010 - 01:34) kovaldm написал(а):
Нет, не из-за сортировки, а из-за вот этого:
round($size/pow(1024, ($i = floor(log($size, 1024)))), 2)
Спустя 9 минут, 29 секунд (10.10.2010 - 01:44) Demolution написал(а):
Цитата (kovaldm @ 9.10.2010 - 22:34) |
Нет, не из-за сортировки, а из-за вот этого:
|
Спасибо, думаю пустых файлов не будет
Спустя 36 минут, 47 секунд (10.10.2010 - 02:20) aH6y написал(а):
проверяй на вес, если больше 0 байт, то выполняешь:
round($size/pow(1024, ($i = floor(log($size, 1024)))), 2)