2016-12-20 4 views
-3

У меня есть сценарий, который вызывает все фотографии в папке и перечисляет их, но прямо сейчас скрипт перечисляет все фотографии в одной строке.Autogenerate table for gallery

мне нужно, чтобы они были помещены в таблицу, как:

<table> 
<tr><td>photo 1</td><td>photo 2</td><td>photo 3</td></tr> 
<tr><td>photo 4</td><td>photo 5</td><td>photo 6</td></tr> 
<tr><td>photo 7</td><td>photo 8</td><td>photo 9</td></tr> 
</table> 

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

<?php 
// loop through the array of files and print them all in a list 
for($index=0; $index < $indexCount; $index++) { 
    $extension = substr($dirArray[$index], -3); 
    if ($extension == ('jpg' | 'JPG')){ // list only jpgs and JPG 

     echo '<li><img src=" thumbnail/' . $dirArray[$index] . '" alt="Image" /><span>' . $dirArray[$index] . '</span>'; 
    } 
} 
?> 

Может кто-нибудь, пожалуйста, помогите мне, как это исправить?

+1

Идея здесь в том, что вы пытаетесь делать то, что хотите, И ТОГДА, если у вас есть проблемы, вы задаете вопрос о своей проблеме. Вы ** не ** ** ** ** полностью не связанный фрагмент кода ** и ожидаете, что мы сделаем ** всю работу за вас ** – RiggsFolly

+0

Можете ли вы предоставить 'У меня есть сценарий, который вызывает все фотографии в папке и перечисляет их , Но сейчас скрипт перечисляет все фотографии в том же raw.'? Если вы покажете нам свою фактическую проблему (что у вас есть против того, чего вы хотите), мы с большей вероятностью можем вам помочь. – Guildencrantz

ответ

0

Это будет что-то вроде этого:

<?php 
echo "<table>"; 
$column = 0; 
$closed = false; 
// loop through the array of files and print them all in a list 
for($index=0; $index < $indexCount; $index++) { 
$extension = substr($dirArray[$index], -3); 
if ($extension == ('jpg' | 'JPG')){ // list only jpgs and JPG 
if($column === 0) { 
    echo "<tr>"; 
    $closed = false; 
} 
echo '<td><img src=" thumbnail/' . $dirArray[$index] . '" alt="Image" /><span>' . $dirArray[$index] . '</span></td>'; 
$column++; 
if($column === 3) { 
    echo "</tr>"; 
    $column = 0; 
    $closed = true; 
} 
} 
} 

if(!$closed) { 
    echo "</tr>"; 
} 
echo "</table>"; 
+1

Обратите внимание на мой комментарий выше. Отвечая на откровенное ** сделайте это для меня ** вопросы только поощряют больше вопросов, подобных этому – RiggsFolly

-1

Если вы действительно хотите сделать это с помощью PHP и сделать его HTML:

Создать массив со всеми изображениями:

$images = []; 
foreach(dirArray as $file) { 
    $extension = substr($file, -3); 
    if ($extension == ('jpg' | 'JPG')){ 
     $images[] = $file; 
    } 
} 

Затем вы можете создавать куски из этого массива (http://php.net/manual/en/function.array-chunk.php

$columns = 3; 
$rows = array_chunk($images,$columns); 

Затем сделать вашу таблицу:

$output = '<table>'; 
$i = 0; 
foreach ($rows as $row) { 
    $output .= '<tr>'; 
    foreach($row as $file) 
    { 
     $output .= '<td><img src="thumbnail/' . $file . '" alt="Image" /><span>' . $file . '</span></td>'; 
    } 

    //Add extra empty cells 
    if ($i === count($rows) - 1) { 
      $output .= str_repeat('<td>&nbsp;</td>', $columns - count($row)); 
    } 
    $output .= '</tr>'; 

    $i++; 
} 
$output .= '</table>'; 

echo $output; 

Я предпочел бы не работать с таблицей, но использовать адаптивный подвесную систему (http://www.responsivegridsystem.com/). Вы все равно можете использовать приведенный выше код, но замените части таблицы на «s» соответствующими классами.

+0

Обратите внимание на мой комментарий выше. Отвечая на откровенные ** сделайте это для меня ** вопросы только поощряют больше таких вопросов. Не мой DV, хотя – RiggsFolly