Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Время создания файла


Автор: DEER 13.9.2005, 17:27
Народ, мне нужно отсортировать список имён файлов по дате их создания
Я пытался это сделать сравнивая их при помощи filemtime($a)
Код

function cmp($a, $b)
{
 if(filemtime($a)==filemtime($b))
   return 0;
 return filemtime($a)<filemtime($b) ? 1:-1;
}

........
и потом в где то
........
usort($files, "cmp");

Но у некоторых файлов, filemtime($a) возвращает False и код не работает


Подскажите нормальное решение проблемы smile

Автор: Mal Hack 13.9.2005, 18:40
fileMtime это время модификации... Создание это С.

PS: А почему бы не прочитать файлы в массив, где первый элемент - имя, второй - время создания. И сделать array_miltisort()

Автор: DEER 14.9.2005, 08:24
с fileCtime пробовали, тоже не у всех файлов возвращает значение.....
Цитата

А почему бы не прочитать файлы в массив, где первый элемент - имя, второй - время создания. И сделать array_miltisort()


Я вчера php первый раз в жизни увидел.... Не могли бы нарисовать само решение? Я уверен оно не солжное и не громоздкое.. smile

Заранее благодарен

Автор: -=Ustas=- 14.9.2005, 11:09
Держи! Набросал тебе примерный принцип, думаю, должен быть понятен. Сортирует и выводит по дате:
Код

<?php

if ($dir = opendir(".")) {
    $fileArray = array();
    while (($file = readdir($dir)) !== false) {
        if (is_file($file)) {
            $fileArray[filectime($file)] = $file;
            // echo $file."<br>";
        }
    }
    closedir($dir);
    clearstatcache();
}

krsort($fileArray);

foreach ($fileArray AS $key => $value) {
    echo "Файл: ".$value." - дата создания: ".date("d.m.Y / H:i:s", $key)."<br>";
}

?>

Автор: DEER 14.9.2005, 11:35
Спасибо!

А функция filectime зависит от ОС?

А может она у нас не правильно работает изза того что отлаживали под Винду?

Автор: -=Ustas=- 14.9.2005, 11:37
У меня нормально под виндой пашет. Проблем еще не было.

Автор: Mal Hack 14.9.2005, 17:53
Цитата(DEER @ 14.9.2005, 09:24)
Я вчера php первый раз в жизни увидел.... Не могли бы нарисовать само решение?

А тебе не хочется самому сделать?
Тебе не хочется увидеть работающий скрипт, который ты написал своими руками?


Цитата(DEER @ 14.9.2005, 12:35)
А функция filectime зависит от ОС?

В виндах глючит.

Автор: DEER 15.9.2005, 08:29
Цитата(Mal @ 14.9.2005, 17:53)
А тебе не хочется самому сделать?
Тебе не хочется увидеть работающий скрипт, который ты написал своими руками?

В другое время я бы и поковырялся, дело в том, что надо было иметь работающий скрипт уже позавчера,
хотя и так получилось что своими руками, только через жопу(на первое время), переименовали все файлы, так что в начале имени стоит дата его создания, а потом, при выводе в форму мы её вырезали, через ж... но всё работает smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)