2016-01-27 2 views
1

Я ищу, чтобы написать PHP-скрипт, который будет размещать изображения из каталога в формате таблицы шириной 8 колонок, а строки будут содержать столько изображений, сколько есть. В этом текущем коде у меня есть только записи в отдельных строках. Как я могу разделить их на строки из 8 изображений?Показать изображения в таблице html (IF loop)

<?php 

$files = glob("images/*.*"); 
for ($i=1; $i<count($files); $i++) 
{ 
    $image = $files[$i]; 
    $supported_file = array(
     'gif', 
     'jpg', 
     'jpeg', 
     'png' 
    ); 

    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION)); 
    if (in_array($ext, $supported_file)) { 
     // print $image ."<br />"; 
     echo '<a href="' .$image .'"><img src="'.$image .'" alt="Random image" width=200 /></a>'."<br /><br />"; 
    } else { 
     continue; 
    } 
} 
?> 
+1

примечание: вы, вероятно, захотите начать с нуля, а не с 1 в петле –

ответ

2

Что-то вроде этого? $ i% 8 возвращает 0 каждую восьмую строку, так что все, что мы делаем, это остановить остановку/начать тег <tr> в основном.

<table> 
    <tr> 
     <?php 
     $files = glob("images/*.*"); 
     for ($i = 1; $i < count($files); $i++) { 
      $image = $files[$i]; 
      $supported_file = array(
       'gif', 
       'jpg', 
       'jpeg', 
       'png' 
      ); 

      $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION)); 
      if (in_array($ext, $supported_file)) { 
       // print $image ."<br />"; 
       echo '<td><a href="' . $image . '"><img src="' . $image . '" alt="Random image" width=200 /></a></td>'; 
      } 
      if ($i % 8 === 0) { 
       echo "</tr><tr>"; 
      } 
     } 
     ?> 
    </tr> 
</table> 
+0

Это отлично работает, спасибо вам большое! – BigMike

+0

Модуль ref: http://php.net/manual/en/language.operators.arithmetic.php –

-2

Простейший способ обработки glob - использовать foreach. После правильного цикла вы можете настроить вывод html любым способом.

<?php 

foreach (glob('images/*.{gif,jpg,jpeg,png}', GLOB_BRACE) as $image) { 
    echo '<a href="' .$image .'"><img src="'.$image .'" alt="Random image" width=200 /></a>'."<br /><br />"; 
} 

glob принимает флаг GLOB_BRACE, который является очень полезным иногда;)

foreach является простым способом цикла.

Надеюсь, это поможет!

+0

Не отвечает на 8 столбцов. – AbraCadaver

Смежные вопросы