Hi!
I'm currently developing a photography portfolio for a friend. To display his images, rather than using a database and allowing it to get massive, I've decided to go ahead and stick them into a directory and then cycle through it. As it's currently set up, I open the directory and read it, use preg_split() to divide the files up according to file type, and then use a foreach() statement to display them.
It works like a charm. But now I have a problem: I want to limit the amount of files that are echoed out. I've tried everything. Using this:
$i = 0;
foreach($images as $image){
// blahblahblah
$i++
if($i > 10){
break;
}
}
And that doesn't work. :|
And I also decided to try and count() the array and stuff. Nothing worked.
Furthermore, print_r() returns this:
Array ( [0] => [1] => a_message.jpg [2] => ) Array ( [0] => [1] => cold_call.jpg [2] => ) Array ( [0] => [1] => ring_of_love.jpg [2] => ) Array ( [0] => thumbs ) Array ( [0] => [1] => unclear.jpg [2] => )
Isn't it supposed to return ONE array with different keys?! >.>
Here is the code:
$img_dir = "images/photographs/";
if(is_dir($img_dir)){
if($img_handle = opendir($img_dir)){
echo "<div id=\"index_thumbnails\"><div id=\"hidden_images\">";
while(($img = readdir($img_handle)) !== false){
if($img !== "Thumbs.db" && $img !== "." && $img !== ".."){
$images = preg_split('/([a-zA-Z0-9_-]*\.jpg$)/', $img, 0, PREG_SPLIT_DELIM_CAPTURE);
if(empty($images)){
echo "<b>Sorry, there are no images to display!</b>";
}
else{
foreach($images as $img_display){
if($img_display !== "" && $img_display !== "thumbs"){
$img_name = "images/photographs/{$img_display}";
$thumb_path = "images/photographs/thumbs/";
$size = getimagesize($img_name);
$width = $size['0'];
$height = $size['1'];
$nwidth = round($width/20);
$nheight = round($height/20);
$img_thumb = imagecreatefromjpeg("{$img_name}");
$resized = imagecreatetruecolor($nwidth, $nheight);
imagecopyresampled($resized, $img_thumb, 0, 0, 0, 0, $nwidth, $nheight, $width, $height);
imagejpeg($resized, "{$thumb_path}{$img}_thumb.jpg");
echo "<img src=\"{$thumb_path}{$img}_thumb.jpg\" height=\"{$nheight}\" width=\"{$nwidth}\"/>";
}
}
}
print_r($images);
}
}
closedir($img_handle);
echo "</div></div>";
}
}
Bear with the fact that I'm not using a function to shrink my images. xD I'm getting all of the work out of the way before I make a function and link it to a database to get image information.
All help is appreciated! Thank you!