Show random image(s) from a directory

Posted on September 21, 2008, under PHP 


If you need to show images randomly from a directory then this script can help you.


Let’s configure some variables: $extensions, $images_folder_path & $url_to_images_folder.

// extensions to be checked

$extensions = array('jpg','jpeg','gif','png','bmp');

// images folder

$images_folder_path = '/home/site/public_html/images/';

// url to folder

$url_to_folder = '';

Create the array with the URLs to the images:

// Images Array (SRC value)

$images = array();

srand((float) microtime() * 10000000); // IF PHP Version < 4.2.0

// Open directory and read images

if ($handle = opendir($images_folder_path)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
			// get file extension
			$ext = strtolower(substr(strrchr($file, "."), 1));

			if(in_array($ext, $extensions))
			$images[] = $url_to_folder.$file;


Are there any images in the directory? Select randomly 2 distinctive values. If there are no images in the folder, notify the user with a message.

if(!empty($images)) // Do we have something to show?
$rand_key = array_rand($images, 1);

$src = $images[$rand_key];

echo "<img src='".$src."' align='absmiddle'>";

Show second image; Make sure it will not be the same as the first one;
We will remove the element of the first image from the array. This way the script will not reselect it 


$rand_key = array_rand($images, 1);

$src = $images[$rand_key];

echo "<br /><br /><img src='".$src."' align='absmiddle'>";
echo 'No images were found in <strong>'.$images_folder_path.'</strong>';

Comment via Facebook


Leave a Reply

* = required fields

  (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Note: If you want to post CODE Snippets, please make them postable first!
(e.g. <br /> should be converted to &lt;br /&gt;)


  • The comment must be relevant with the topic of the post.
  • Only comments with real email addresses will get approved. So, emails like '' will not be accepted.
  • Do not post the same message in multiple articles through the site.
  • Do not post advertisements, junk mail or pyramid schemes.
  • In case you post a link to another site, please explain briefly where the link goes as a courtesy to other users.
  • Do not post comments such as: "Thank you", "Awesome", "Nice tutorial", "Merci", etc.