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

Форум PHP

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

 

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

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

тема: Проблемы с упорядоченным выводом
 
 автор: Dimich   (16.07.2007 в 12:11)   письмо автору
 
 

Для упорядоченного вывода фотографий на страницу я сочинил простой скрипт:

<?
$dir 
opendir("imgs");
$n 0;
$td 0;
while (
$file readdir($dir))
{
 if ((
$file != ".") && ($file != ".."))
 {
  
$n++;
  
$file_array[$n] = $file;
  echo (
"<Td width=20% height=200 align=center><A Href=photo.php?img=img/".$file_array[$n]." target=_blank><Img Src=imgs/".$file_array[$n]." Border=1><Br>".$file_array[$n]."</A></Td>");
  
$td++;
  if (
$td == 5)
  { echo (
"</Tr><Tr>"); $td 0;}
 
 }
}
closedir($dir);
?>


но он почему то выводит фотки не в порядке а как ему вздумается.
пример:
http://www.dmlim.net/weddings/anita_and_roman/church/

Подскажите пожалуйста, в чем может быть проблема?
Спасибо!!

   
 
 автор: SHAman   (16.07.2007 в 12:34)   письмо автору
 
   для: Dimich   (16.07.2007 в 12:11)
 

Я думаю, что выводит он их в порядке. В том, в котором считал с диска (readdir). Может, стоит сначала считать все файлы в массив, потом отсортировать его по какому-то признаку, а потом входить в цикл вывода?

   
 
 автор: Dimich   (16.07.2007 в 12:47)   письмо автору
 
   для: SHAman   (16.07.2007 в 12:34)
 

Попробую, спасибо

А riddir разве не в порядке возрастания читает?

   
 
 автор: Trianon   (16.07.2007 в 13:36)   письмо автору
 
   для: Dimich   (16.07.2007 в 12:47)
 

в порядке возрастания чего?
readdir читает записи в том порядке, в котором они ей выдаются файловой системой.

   
 
 автор: Buhen   (17.07.2007 в 20:23)   письмо автору
 
   для: Trianon   (16.07.2007 в 13:36)
 

arkcs.ru

   
 
 автор: Trianon   (17.07.2007 в 21:52)   письмо автору
 
   для: Buhen   (17.07.2007 в 20:23)
 

>arkcs.ru

The fast has not created in me a sense of obligation...
(c) Stephen Crane

   
 
 автор: Dimich   (17.07.2007 в 20:51)   письмо автору
 
   для: Trianon   (16.07.2007 в 13:36)
 

Решил проблему таким образом:

$dir = opendir("imgs");
$n = 0;
$td = 0;
while ($file = readdir($dir))
{
 if (($file != ".") && ($file != ".."))
 {
  $n++;
  $file_array[$n] = $file;
 }
}
closedir($dir);
sort($file_array);
for($i=0; $i<count($file_array); $i++)
{
 {
  echo ("<Td width=20% height=200 align=center><A Href=photo.php?img=img/".$file_array[$i]." target=_blank><Img Src=imgs/".$file_array[$i]." Border=1><Br>".$file_array[$i]."</A></Td>");
  $td++;
  if ($td == 5)
  { echo ("</Tr><Tr>"); $td = 0;}
 }
}

Наверняка существует более изящный способ, если кто-нибудь предложит, буду рад!

   
 
 автор: Trianon   (17.07.2007 в 21:55)   письмо автору
 
   для: Dimich   (17.07.2007 в 20:51)
 

На какой файловой системе у Вас лежит imgs? На FAT32?
Давно пора на NTFS перебраться.

   
Rambler's Top100
вверх

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