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

Форум PHP

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

 

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

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

тема: сортировать фото файлы по датам
 
 автор: cccp   (29.01.2006 в 12:59)   письмо автору
 
 

Добрый день всем.

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



<?php 
     array_multisort 
($dossier_cibleSORT_DESCSORT_NUMERIC);
      
$size GetImageSize($dossier_cible.$f);     
      
$w $size[0]; $h $size[1]; 
?>

   
 
 автор: WebTech   (29.01.2006 в 13:40)   письмо автору
 
   для: cccp   (29.01.2006 в 12:59)
 

А дата загрузки где-нибудь сохраняется?

   
 
 автор: cccp   (29.01.2006 в 20:35)   письмо автору
 
   для: WebTech   (29.01.2006 в 13:40)
 

нет.

   
 
 автор: WebTech   (30.01.2006 в 10:45)   письмо автору
 
   для: cccp   (29.01.2006 в 20:35)
 

Надо организовать сохранение даты во время загрузки файла. Потом по этой дате и сортировать. Как организовать это уже твое дело. Писать дату в файл или базу данных.

   
 
 автор: elenaki   (30.01.2006 в 11:21)   письмо автору
 
   для: WebTech   (30.01.2006 в 10:45)
 

можно сохранять дату в имени файла картинки, тогда никакие базы и файлы не нужны будут

   
 
 автор: WebTech   (30.01.2006 в 11:58)   письмо автору
 
   для: elenaki   (30.01.2006 в 11:21)
 

Точно! Можно и так :-) Например, filename2006-01-30.jpg.

   
 
 автор: XPraptor   (30.01.2006 в 12:34)   письмо автору
 
   для: WebTech   (30.01.2006 в 11:58)
 

На самом деле все гораздо проще и не надо называть файлы датой.

$array_file_names=scandir("folder_path");
foreach($array_file_names as $val){
if($val != "." && $val != "..")$array_file_time[$val]=filemtime($val);
}
rsort($array_file_time);

теперь ключи массива $array_file_time это имена файлов, а значения - дата изменения (в вашем случае закачки на сервер) этих файлов в timestamp отсортированная в обратном порядке (последние закачанные самые первые).

   
 
 автор: WebTech   (30.01.2006 в 12:55)   письмо автору
 
   для: XPraptor   (30.01.2006 в 12:34)
 

Я думал о таком варианте. Но меня потом смутило вот что.
filemtime() дает время последнего изменения самих данных файла при операциях вывода в файл. Загрузка файла считается записью данных в файл?

   
 
 автор: XPraptor   (30.01.2006 в 13:00)   письмо автору
 
   для: WebTech   (30.01.2006 в 12:55)
 

Да. При закачке на сервер, байты переписываются и это считается изменением и пишется текущее время.

   
 
 автор: WebTech   (30.01.2006 в 13:15)   письмо автору
 
   для: WebTech   (30.01.2006 в 12:55)
 

Да. На Windows работает. На *nix тогда тоже будет работать.

XPraptor, тогда твой вариант оптимальный :-)

   
 
 автор: Loki   (30.01.2006 в 12:08)   письмо автору
 
   для: elenaki   (30.01.2006 в 11:21)
 

А можно и вовсе ориентироваться по дате создания файла.

   
 
 автор: elenaki   (30.01.2006 в 12:14)   письмо автору
 
   для: Loki   (30.01.2006 в 12:08)
 

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

   
 
 автор: Loki   (30.01.2006 в 12:19)   письмо автору
 
   для: elenaki   (30.01.2006 в 12:14)
 

Ну я отвечал на первый вопрос темы: при загрузке файла ему присваивается дата загрузки, в качестве даты создания.
А название файла я бы формировал так:
200601301218.jpg
тогда в любом клиенте это будет сортироваться правильно... ну или можно в секунды перевести, но там не так наглядно.

   
 
 автор: cccp   (30.01.2006 в 22:15)   письмо автору
 
   для: Loki   (30.01.2006 в 12:19)
 

Добрый день всем!
Спасибо за вашу помощь.
Я не сильно разбираюсь в PHP. Помогите пожалуста.
Я пробовал добавить так,



<?php 
      $array_file_names
=scandir($dossier_cible);
foreach(
$array_file_names as $val){
if(
$val != "." && $val != "..")$array_file_time[$val]=filemtime($val);
}
rsort($array_file_time);
      
$size GetImageSize($dossier_cible.$f);     
      
$w $size[0]; $h $size[1]; 
      
?>


но что-то не получается.
Проишодит ошибка:

Fatal error: Call to undefined function: scandir() in upload_discography.php on line 190

линия 190 это эта : $array_file_names=scandir($dossier_cible);

Помогите пожалуста.
Я приклепляю вам полный файл. Может это облегчит что-то.


Зарание вам благодарен.

   
 
 автор: WebTech   (31.01.2006 в 13:28)   письмо автору
12 Кб
 
   для: cccp   (30.01.2006 в 22:15)
 


<?php
$dir 
opendir($dossier_cible);
$i 0;
while (
$file readdir($dir))
{
if (
$file != '.' and $file != '..'
  {
  
$time filemtime($dossier_cible.$file);
  
$files[$file] = $time
  
$i++;
  echo 
$file.' - '.$time.'<br>';
  }
}

arsort($files);

$filenames array_keys($files); 

$num count($files);

for (
$i=0$i<$num$i++)
{
echo 
$filenames[$i].' - '.date('j M Y H:i:s'$files[$filenames[$i]]).'<br>';
}
?>

Этот скрипт выведет файлы из каталога $dossier_cible отсортированные по убыванию по времени загрузки. Проверено на Win - работает.

В аттаче твой скрипт с моим "внедренным" скриптом. Но я не тестировал. Пробуй сам. Если что - напишешь.

   
 
 автор: cccp   (01.02.2006 в 19:01)   письмо автору
 
   для: WebTech   (31.01.2006 в 13:28)
 

я пробовал ваш посланый файл.
Сортировка работает классно, только вот теперь описание файлов на против не видно...
Помогите , please :)

   
 
 автор: WebTech   (02.02.2006 в 15:15)   письмо автору
12 Кб
 
   для: cccp   (01.02.2006 в 19:01)
 

Смотри в аттаче.
Там, где вывод описания, не было echo. Что ж ты? :-) Такую мелочь мог бы и сам увидеть.
Ладно :-) Попробуй, если что, напишешь.

P.S. еще нашел ошибку у тебя. Там где идет проверка на тип загружаемого файла, ошибка в типе файла. Написано image/bnp, надо image/bmp.

   
 
 автор: cccp   (02.02.2006 в 17:23)   письмо автору
 
   для: WebTech   (02.02.2006 в 15:15)
 

Огромное спасибо.
Сегодня вечером попробую скрипт, а то я сейчас не дома.

ПС: На счёт ошибки, спасибо. Приятно, это доказывает что вы (ты) внимательно посмотрели.
это я ошибся...я видел, только торопился и отправил не исправленный файл.

   
 
 автор: cccp   (03.02.2006 в 00:03)   письмо автору
 
   для: cccp   (02.02.2006 в 17:23)
 

всё работает!
Классно!
Огромное спасибо!!!

   
 
 автор: cccp   (03.02.2006 в 00:04)   письмо автору
 
   для: cccp   (02.02.2006 в 17:23)
 

неимоверно благодарен.

   
Rambler's Top100
вверх

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