2012-05-20 1 views
0

У меня проблема с agallery в PHP. Галерея имеет следующую конструкцию:Галерея с большими пальцами, слишком много циклов foreach (?) (PHP)

  <div class="imageElement"> 
       <h3>Item 1 Title</h3> 
       <p>Item 1 Description</p> 
       <a href="open/1.jpg" title="open image" class="open"></a> 
       <img src="big/1-gallery.jpg" class="full" /> 
       <img src="thumb/1-mini.jpg" class="thumbnail" /> 
      </div> 
     and so on 

У меня есть три папки: большого - с нормальными изображениями, большого пальца - с пальцами, открытыми - с большими изображениями.

Я создал цикл Еогеасп:

<?php foreach(glob("images/folder/images/".$id."/big/*.jpg") as $filename) : ?> 

<div class="imageElement"> 
<h3>Item 1 Title</h3> 
<p>Item 1 Description</p> 
<a href="path-to-large-image" title="open image" class="open"></a> 
<? echo '<img src="'.$filename.'" class="full">'?> 

<?php foreach(glob("images/folder/images/".$id."/thumb/*.jpg") as $filename2) : ? > 
<? echo '<img src="'.$filename2.'" class="thumbnail">';break;?> 
<?php endforeach ?> 
</div> 
<?php endforeach ?> 

К сожалению, я получил только первый - тот же палец к каждому изображению. Как использовать цикл foreach в таком случае? Как использовать следующий цикл для получения изображения из открытой папки?

Спасибо за ответы.

Edit:

Мой выход в HTML выглядит:

<div class="imageElement"> 
<h3>title</h3> 
<p>text</p> 
<a href="/images/folder/4/open/1.jpg" title="open image" class="open"></a> 
<a href="/images/folder/4/open/2.jpg" title="open image" class="open"></a> 
<a href="/images/folder/4/open/3.jpg" title="open image" class="open"></a> 
<a href="/images/folder/4/open/4.jpg" title="open image" class="open"></a> 

<img src="images/folder/images/4/big/1.jpg" class="full"> 

<img src="/images/folder/images/4/thumb/1.jpg" class="thumbnail"> 
<img src="/images/folder/images/4/thumb/2.jpg" class="thumbnail"> 
<img src="/images/folder/images/4/thumb/3.jpg" class="thumbnail"> 
<img src="/images/folder/images/4/thumb/4.jpg" class="thumbnail"> 
</div> 

<div class="imageElement"> 
<h3>title</h3> 
<p>text</p> 
<a href="/images/folder/4/open/1.jpg" title="open image" class="open"></a> 
<a href="/images/folder/4/open/2.jpg" title="open image" class="open"></a> 
<a href="/images/folder/4/open/3.jpg" title="open image" class="open"></a> 
<a href="/images/folder/4/open/4.jpg" title="open image" class="open"></a> 

<img src="images/folder/images/4/big/2.jpg" class="full"> 

<img src="/images/folder/images/4/thumb/1.jpg" class="thumbnail"> 
<img src="/images/folder/images/4/thumb/2.jpg" class="thumbnail"> 
<img src="/images/folder/images/4/thumb/3.jpg" class="thumbnail"> 
<img src="/images/folder/images/4/thumb/4.jpg" class="thumbnail"> 
</div> 

и так далее.

Это должно выглядеть:

<div class="imageElement"> 
<h3>title</h3> 
<p>text</p> 
<a href="/images/folder/4/open/1.jpg" title="open image" class="open"></a> 
<img src="images/folder/images/4/big/1.jpg" class="full"> 
<img src="/images/folder/images/4/thumb/1.jpg" class="thumbnail"> 
</div> 

<div class="imageElement"> 
<h3>title</h3> 
<p>text</p> 
<a href="/images/folder/4/open/2.jpg" title="open image" class="open"></a> 
<img src="images/folder/images/4/big/2.jpg" class="full"> 
<img src="/images/folder/images/4/thumb/2.jpg" class="thumbnail"> 
</div> 

ответ

0

, как вы построили свой код, смешивание PHP и HTML, PHP может запутать. Попробуйте это:

<?php 
foreach(glob("images/folder/images/".$id."/big/*.jpg") as $filename) { 

    echo '<div class="imageElement"> 
<h3>Item 1 Title</h3> 
<p>Item 1 Description</p> 
<a href="path-to-large-image" title="open image" class="open"></a> 
<img src="'.$filename.'" class="full">'; 

    foreach(glob("images/folder/images/".$id."/thumb/*.jpg") as $filename2) { 
    echo '<img src="'.$filename2.'" class="thumbnail">'; 
    } 
    echo '</div>'; 
} 

EDIT:

Это производит то, что вы ищете:

foreach($x as $filename) { 
    $chunks=explode("/", $filename); 
    $file=$chunks[count($chunks)-1]; 

    echo '<div class="imageElement"> 
    <h3>Item 1 Title</h3> 
    <p>Item 1 Description</p> 
    <a href="./images/folder/images/'.$id.'/open/'.$file.'" title="open image" class="open"></a> 
    <img src="./images/folder/images/'.$id.'/big/'.$file.'" class="full"> 
    <img src="./images/folder/images/'.$id.'/thumb/'.$file.'" class="thumbnail"> 

    </div> 


    '; 

} 

Выход:

<div class="imageElement"> 
<h3>Item 1 Title</h3> 
<p>Item 1 Description</p> 
<a href="./images/folder/images/4/open/1.jpg" title="open image" class="open"></a> 
<img src="./images/folder/images/4/big/1.jpg" class="full"> 
<img src="./images/folder/images/4/thumb/1.jpg" class="thumbnail"> 

</div> 


<div class="imageElement"> 
<h3>Item 1 Title</h3> 
<p>Item 1 Description</p> 
<a href="./images/folder/images/4/open/2.jpg" title="open image" class="open"></a> 
<img src="./images/folder/images/4/big/2.jpg" class="full"> 
<img src="./images/folder/images/4/thumb/2.jpg" class="thumbnail"> 

</div> 


<div class="imageElement"> 
<h3>Item 1 Title</h3> 
<p>Item 1 Description</p> 
<a href="./images/folder/images/4/open/3.jpg" title="open image" class="open"></a> 
<img src="./images/folder/images/4/big/3.jpg" class="full"> 
<img src="./images/folder/images/4/thumb/3.jpg" class="thumbnail"> 

</div> 


<div class="imageElement"> 
<h3>Item 1 Title</h3> 
<p>Item 1 Description</p> 
<a href="./images/folder/images/4/open/4.jpg" title="open image" class="open"></a> 
<img src="./images/folder/images/4/big/4.jpg" class="full"> 
<img src="./images/folder/images/4/thumb/4.jpg" class="thumbnail"> 

</div> 

только вещь, чтобы исправить это Пункт 1 Название/Описание.

+0

Спасибо за ваш ответ. Я попытался таким образом, но тогда ничего не отображается. – Delicja

+0

Возможно, вы захотите попробовать и посмотреть, что возвращает glob(). В качестве теста попробуйте 'print_r (glob (" images/folder/images /".$ id. "/ Big/*. Jpg")); 'внутри цикла вместо реального кода посмотрите, что распечатывается. – dda

+0

Спасибо. Я получил массив с четырьмя элементами (4 картинки). Я знаю, что с петлями что-то не так. У меня есть цикл foreach для обычных изображений, для больших пальцев, и я хотел бы использовать цикл для получения больших изображений из другой папки. Когда я вижу вывод в html, я получил ... Я обновлю свой первый пост. – Delicja

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