i have this piece of code:
<?
include( "http://api.flickr.com/services/feeds/photos_public.gne?id=22352410@N07&lang=en-us&format=php" );
$i = 0;
foreach($feed['items'] as $item) {
preg_match("/<img src=\"([^\"]+)\" .*? \/>/", $item['description'], $matches);
$img_html = $matches[0];
$img_src = $matches[1];
$medium_url = ereg_replace("_m", "_s", $img_src);
echo "$img_html";
}
?>
How I could make that each N number of pictures appear inside of a <div></div>
Example:
<div class="container">
<img src="1.jpg" />
<img src="2.jpg" />
<img src="3.jpg" />
<img src="4.jpg" />
<img src="5.jpg" />
<img src="6.jpg" />
<img src="7.jpg" />
<img src="8.jpg" />
<img src="9.jpg" />
<img src="10.jpg" />
<img src="11.jpg" />
<img src="12.jpg" />
</div>
<div class="container">
<img src="13.jpg" />
<img src="14.jpg" />
<img src="15.jpg" />
<img src="16.jpg" />
<img src="17.jpg" />
<img src="18.jpg" />
<img src="19.jpg" />
<img src="20.jpg" />
<img src="21.jpg" />
<img src="22.jpg" />
<img src="23.jpg" />
<img src="24.jpg" />
</div>
etc...
Any Ideas??
Thanks so much!!!
About the double div: Move the if statement, that checks whether there is a remainder down, below the statement that increments the counter, and it will not create the double div:
You can check with
%12
. In your loop you add a counter$j
, at each loop you increment$j
.When
$j % 12 === 0
then you have to change your div by adding</div><div class="container">
.Don't forget about the first and last
<div>
markups.You have an
$i=0
there, but you're not using it. There's no 12-line pagination algorithm either. How about trying some$i++
somewhere in your loop and thinking about where to insert anif ($i==12)
orif ($i%12)
somewhere. Sorry, I don't intend to spoon-feed. This is a basic problem you'll find in textbooks.Instead of doing foreach, use a simple for loop with counter, and then use MOD on the counter to determine if the current iteration is divisible by N.
MOD: http://php.net/manual/en/internals2.opcodes.mod.php
For Loop: http://www.tizag.com/phpT/forloop.php
Should do it!
Adding to what others have said
preg_match
before you use$match
.ereg_replace
is deprecated. Usepreg_replace
instead. Since you are just doing a text replacement, you should be usingstr_replace