Php Random Image Display

2012-08-15

Not much to report today; just counting down the days until I have a week off!

This is a modified version of an uncredited script I found; it picks an image at random from a folder specified and displays them, works for different sized images as well.

Useful for things like forum signatures or site headers.

<?php $folder = '.'; // Images location $extList = array(); // Image types $extList['gif'] = 'image/gif'; $extList['jpg'] = 'image/jpeg'; $extList['jpeg'] = 'image/jpeg'; $extList['png'] = 'image/png'; $img = null; if (substr($folder,-1) != '/') { $folder = $folder.'/'; // Prevents remote folder setting } 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"); // Create a PNG as the output $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); } } ?>