• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 265
  • Last Modified:

An Image variable

Hi everyone!
I have a php file that has the following statement:

<img src=" <?php echo 'http://localhost/mediawiki/skins/panorama/death_valley_flowers_panorama.jpg' ?>" style="width: 928px; height: 147px; border: 1 none; filter: alpha(opacity=20); -moz-opacity: 0; opacity: 0;" id="blendimage""/>          

When the page loads, I can see the image 'death_valley_flowers_panorama.jpg'

The folder where this image is, is in:
and there are many images in here.

A variable called $init_pic holds the full path to the location of the panorama folder, and randomly returns an image from that folder.

But if I define img src like the following.....

<img src=" <?php echo 'http://localhost/mediawiki/skins/panorama/' . $init_pic ?>

What $init_pic expands out to is:


That is the FULL PATH to the random image.

So I end up with img src expanding out to be:


which is wrong...it cant find that.

If I place in a hardcoded image path as follows:

<img src=" <?php echo 'http://localhost/mediawiki/skins/panorama/' . 'death_valley_flowers_panorama.jpg' ?>

This loads fine.

But I need the $init_pic variable in there so that the image can change.

The only problem is that with $init_pic in there, I get the following:


I need somehow to make img src look like the following:

<img src=" <?php echo 'http://localhost/mediawiki/skins/panorama/' . 'death_valley_flowers_panorama.jpg' ?>

but where 'death_valley_flowers_panorama.jpg'  is actually $init_pic, so that the images will change.

$int_pic returns the full path to the image.

Is there any way to first return that full path, then cut off everything from the front, to just leave the resulting image name?

So, in other words, is there a function or something that can do the following....

<img src=" <?php echo 'http://localhost/mediawiki/skins/panorama/' . '$int_pic?>
Then before img src is set to this, as this will be wrong....
Trim off the expanded $int_pic variable

Any help appreciated.

Thank you.
1 Solution

$imageDirectory = 'C:\wamp\www\mediawiki\skins\panorama';
$files = array();

if ($handle = opendir($imageDirectory))
      while (false !== ($files[] = readdir($handle)))
      {      }

      $randomImageIndex = array_rand($files);

      echo '<img src="http://localhost/mediawiki/skins/panorama/' . $files[$randomImageIndex] . '" />';
Simon336697Author Commented:
Hi glcummins!
Thanks so much for your help mate.
I tried this and it worked but was a bit hit and miss. Sometimes it would not select an image from the folder, so the page when loaded, had no image. Other times it did.

gl....what I really need is to use the following....

The following php function retrieves the randomized images always:

global $IP;
$images = glob(dirname(__FILE__).'/panorama/*.jpg'); # or $IP/skins/.....panaroma/*.jpg
foreach ($images AS $k=>$v) $images[$k] = ereg_replace("^$IP","/",$v); # note another fix, this needs to be / not empty (I think)
$indx = 0;
$init_pic = $images[array_rand($images)];
foreach($images AS $pic)
      echo "galleryarray[$indx]='$pic';
In the above, the $init_pic holds a randomly selected image name from


So I need to use:

<img src=" <?php echo 'http://localhost/mediawiki/skins/panorama/' . '$int_pic?>

But with $int_pic not the full path, but just image.jpg, or whatever image it holds at any time.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now