Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отсортировать фаилы по времени закачки
 
 автор: Олег   (08.01.2005 в 16:03)   письмо автору
 
 

Помогите, у меня php скрипт отображает все изображения которые загруженны в каталог на сервере и сортирует их по имени, а мне надо чтоб по дате, но не просто по дате, а по дате загрузке фаила на сервер !! Какая это функция ? я пробовал такой filemtime, но он по какомуто не тому времени сортирует :)

   
 
 автор: cheops   (08.01.2005 в 16:14)   письмо автору
 
   для: Олег   (08.01.2005 в 16:03)
 

Хм... вообщето именно filemtime() нужно использовать в этом случае... может дело кэшировании... результаты этой функции по умолчанию кешируются и могут подставляться старые данные - попробуйте очистить кэш при помощи функции clearstatcache():
<?php
clearstatcache
();
?>

   
 
 автор: Олег   (08.01.2005 в 16:23)   письмо автору
 
   для: cheops   (08.01.2005 в 16:14)
 

С функцией filemtime он мне сортирует фаилы которые были раньше всех закаченны, находятся в верху, а нодо наоборот.
Т.е. фаил который я только закачал, должен быть первым в списке, а не последним....
Может какая-то из этих функций: filectime(), fileatime()
Что они значут ?

   
 
 автор: cheops   (08.01.2005 в 16:31)   письмо автору
 
   для: Олег   (08.01.2005 в 16:23)
 

Хм... а может просто тогда воспользоваться инверсной сортировкой? Т.е. использовать допустим не функцию sort(), сортирующую массив в прямом порядке, а rsort() - сортирующую в обратном?

   
 
 автор: Олег   (08.01.2005 в 16:36)   письмо автору
 
   для: cheops   (08.01.2005 в 16:31)
 

filemtime("$thumbdir/$entry") куда вставлять rsort ?
rsort(filemtime("$thumbdir/$entry")) так чтоли, но так мне фигню выдает непонятный порядок :(

   
 
 автор: cheops   (08.01.2005 в 16:39)   письмо автору
 
   для: Олег   (08.01.2005 в 16:36)
 

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

   
 
 автор: Олег   (08.01.2005 в 16:52)   письмо автору
 
   для: cheops   (08.01.2005 в 16:39)
 

Первый фаил



function name_cmp($a, $b)
{
    return strcasecmp($a["name"], $b["name"]);
}

function date_cmp($a, $b)
{
    return $a["date"] > $b["date"];
}

function size_cmp($a, $b)
{
    return $a["size"] > $b["size"];
}
function descr_cmp($a, $b)
{
    return strcasecmp($a["descr"], $b["descr"]);
}

function type_cmp($a, $b)
{
    return strcasecmp($a["type"], $b["type"]);
}




Второй фаил


require("photogallery-config2.php");
require("compare.php");

# we make an array which contains list of images (-> sorting)    
$othumbdir = dir($thumbdir);
$pictures = array();

while($entry = $othumbdir->read())
{
    if(is_file("$thumbdir/$entry"))
    {
        array_push($pictures, array("name" => $entry,
                                                                 "date" => filemtime("$thumbdir/$entry"),
                                                                 "size" => filesize("$thumbdir/$entry")));
    }
}
$othumbdir->close();
#then we can sort information as ordered
if(! $sort)
    $sort = "name";

usort($pictures, $sort . "_cmp");    


if (! $numberz)
    $numberz = $defnumber;

if (! $pagenum)
    $pagenum = 1;


/* Some helper functions */

function get_pictinfo($picture)
{
    global $infofile;
    # Read the infofile

    $fp=fopen($infofile,"r");
    $contents=fread($fp, filesize($infofile));
    fclose($fp);
    $start = strpos($contents,$picture) + strlen($picture);
    $tmpstr = substr($contents,$start,strlen($contents));
    $stop = strpos($tmpstr, "\n");
    $pictinfo = substr($contents,$start,$stop);

    return $pictinfo;
}
function num2picture($num)
{
    global $pictures;
  reset($pictures);
  $num--;
    for($count=0; $count<=($num); $count++)
    {
        list(, $entry) = each($pictures);
    }
  return $entry["name"];
}

function picture2num($picture)
{
    global $pictures;
  reset($pictures);
    $count = 0;  
  
  foreach($pictures as $entry)
  {
        $count++;
        if($entry["name"] == $picture)
            break;
    }
    return $count; 
}




//// И так далее.....

   
 
 автор: Олег   (08.01.2005 в 16:59)   письмо автору
 
   для: Олег   (08.01.2005 в 16:52)
 

Все я сделал, там вместо usort надо было поставить uasort
И ВСЕ ЗАРАБОТАЛО :)

   
 
 автор: Олег   (08.01.2005 в 17:04)   письмо автору
 
   для: cheops   (08.01.2005 в 16:39)
 

СПАСИБО ЧТО ПОМОГЛИ НАСТАВИТЬ НА ПУТЬ ИСТЕННЫЙ ;)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования