Show random image(s) from a directory
Hi,
If you need to show images randomly from a directory then this script can help you.
index.php
Let’s configure some variables: $extensions, $images_folder_path & $url_to_images_folder.
<?php
// 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 = 'http://www.yoursitename.com/images/';
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;
}
}
}
closedir($handle);
}
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
*/
unset($images[$rand_key]);
$rand_key = array_rand($images, 1);
$src = $images[$rand_key];
echo "<br /><br /><img src='".$src."' align='absmiddle'>";
}
else
{
echo 'No images were found in <strong>'.$images_folder_path.'</strong>';
}
?>
The archive is made using WinZip 12.0. If you're having problems unzipping it, consider using WinRar, WinAce or a similar software to extract the files from the archive.Be notified when we have new posts by subscribing to




(18 votes, average: 4.89 out of 5)
This could be done with a lot less code.
A lot less code? Could be, but think how many beginners would actually understand a similar script with less code. The current application is well commented and gives the user an idea of how this script is actually working (step by step).