Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2014, 10:08   #1
Parallelogram
Недотепа
Форумчанин
 
Регистрация: 18.01.2011
Сообщений: 174
По умолчанию Выравнивание_таблицы

Здравствуйте, вот код вывода картинок из папки в колонки, но почему-то вывод двух первых (или последних, не знаю) картинок переносится на новую строчку и получается таблица 2\2\4\4\4\и т.д.(на скрине ниже). Причем, первая картинка это это сама папка с файлами.
Подскажите как это исправить?
P.s.: при выводе в прямом порядке все нормально отображается "for ($i = 0; $i < count($files); $i++)", но мне так не ннадо.
PHP код:
<?php
  $dir 
'save_dir/'// Папка с изображениями
  
$cols 4// Количество столбцов в будущей таблице с картинками
  
$files scandir($dir); // Берём всё содержимое директории
  
echo "<table>"// Начинаем таблицу
  
$k 0// Вспомогательный счётчик для перехода на новые строки
  
for ($i count($files); $i 0$i--) { // Перебираем все файлы
    
if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем
      
if ($k $cols == 0) echo "<tr>"// Добавляем новую строку
      
echo "<td>"// Начинаем столбец
      
$path $dir.$files[$i]; // Получаем путь к картинке
      
echo "<a href='$path'>"// Делаем ссылку на картинку
      
echo "<img src='$path' alt='' width='100' />"// Вывод превью картинки
      
echo "</a>"// Закрываем ссылку
      
echo "</td>"// Закрываем столбец
      /* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */
      
if ((($k 1) % $cols == 0) || (($i 1) == count($files))) echo "</tr>";
      
$k++; // Увеличиваем вспомогательный счётчик
    
}
  }
  echo 
"</table>"// Закрываем таблицу
?>
Parallelogram вне форума Ответить с цитированием
Старый 22.10.2014, 21:15   #2
Gocer
 
Регистрация: 22.06.2008
Сообщений: 7
По умолчанию

PHP код:
<?php
  $count 
4;
  
$files scandir('/');
  unset(
$files[array_search('.'$files)]);
  unset(
$files[array_search('..'$files)]);
  
$files array_values($files);

  
$files_count count($files);
  
$tr_count ceil($files_count/$count);
  
$td_count $count*$tr_count;

  if(
$td_count != $files_count){
      for(
$i=$files_count$i<$td_count$i++){
          
$files[] = '&nbsp;';
      }
  }

  echo 
"<table>";
  for(
$i=0$i<$td_count$i=$i+$count){
      echo 
"<tr>";

      for(
$j=$i$j<$i+$count$j++){
          echo 
"<td style='width:50px;overflow:hidden;border:1px solid black'>{$files[$j]}</td>";
      }

      echo 
"</tr>";
  }
  echo 
"</table>";

Последний раз редактировалось Gocer; 22.10.2014 в 21:27.
Gocer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск