Jump to content

Random Img Gallery, I Have the Script, but how to extend it?


mousepad

Recommended Posts

Hello! I have a folder of thumbnail images that I would like to display in an image gallery at random.  I am using the php script below to serve the images. It works well for generating one random image, but if I use the same script it will repeat the same random image. My index looks something like this:

 

<p>

    <img src="/gallery.php/" alt="Members Gallery" />

    <img src="/gallery2.php/" />

    <img src="/gallery3.php/" />

    <img src="/gallery4.php/" />

</p>

 

galleries 2, 3 4 are the same as gallery.php just copied into different files.  This is the only solution I could figure out to generate several random images.  If someone could figure out how to do this within one script I would be greatly indebted.  Thanks!

 

 

/* gallery.php */

 

<?php

$folder = '/folderwiththumbimages/';

 

    $extList = array();

$extList['gif'] = 'image/gif';

$extList['jpg'] = 'image/jpeg';

$extList['jpeg'] = 'image/jpeg';

$extList['png'] = 'image/png';

 

$img = null;

 

if (substr($folder,-1) != '/') {

$folder = $folder.'/';

}

 

if (isset($_GET['img'])) {

$imageInfo = pathinfo($_GET['img']);

if (

    isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&

        file_exists( $folder.$imageInfo['basename'] )

    ) {

$img = $folder.$imageInfo['basename'];

}

} else {

$fileList = array();

$handle = opendir($folder);

while ( false !== ( $file = readdir($handle) ) ) {

$file_info = pathinfo($file);

if (

    isset( $extList[ strtolower( $file_info['extension'] ) ] )

) {

$fileList[] = $file;

}

}

closedir($handle);

 

if (count($fileList) > 0) {

$imageNumber = time() % count($fileList);

$img = $folder.$fileList[$imageNumber];

}

}

 

if ($img!=null) {

$imageInfo = pathinfo($img);

$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];

header ($contentType);

readfile($img);

} else {

if ( function_exists('imagecreate') ) {

header ("Content-type: image/png");

$im = @imagecreate (100, 100)

    or die ("Cannot initialize new GD image stream");

$background_color = imagecolorallocate ($im, 255, 255, 255);

$text_color = imagecolorallocate ($im, 0,0,0);

imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);

imagepng ($im);

imagedestroy($im);

}

}

 

?>

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.