Jump to content

Advanced Randomized Image Display Script/Automated to 100 Images


ridiculous

Recommended Posts

So I've been looking around the net trying to find a script that would randomly display MANY images from a file on one's server. MANY in this sense would too many to itemize each image in an array.

I have an Actionscript file that does this just peachy for the flash version of my site, but I'd like to use a PHP script for the non-flash version. Any ideas?


P.S.

I am aware of some scipts already made available here, maybe there is a way to fix them so that a 50+ images can be drawn from a server directory without being itemized:

i.e.


-------------------------------------

http://www.chipmunk-scripts.com/page.php?ID=23
Chipmunk Imagerotator
This is all the code for image rotator:

"; } else if($imagevar==2) { print ""; } else if($imagevar==3) { print ""; } else if($imagevar==4) { print ""; } ?>

The rand() function in php, generates a random number, the first passed value is the lower bound, the second is the higher bound. Just paste this code where-ever you want the rotated image and replace the 'URL of image #' with the URL of the image. To adjust the number of images rotated, simply change the $imagevar=rand(1, 4) to $imagevar=rand(1, # of images you want to rotate here) and then for each additional image create an else if case. For example for the fifth image you would want:

else if($imagevar==5)
{
print "";
}

If you want less than 4 images, simply take out the else if cases for that image.

------------------------------------------------------------------


[b][color=red]Your help makes me feel warm and fuzzy. [/color][/b]
Link to comment
Share on other sites

So, since no one else is biting...I'll share my progress.

What I'm thinking is that I should rename all the images in my server directory to a number, (i.e. 1,2,3...n). Then I figure I'll write a script to generate a random number between the first and last numbers I have as filenames and simply inject that number into a print function that prints the image.

I still would like to tweek this so that I don't have to change the script every time I change the number of images in the directory.
Link to comment
Share on other sites

I'm not quite sure if i've got what your saying but i think you do, pretty much you want to open a directory, if it's a picture in that directory you want to display it, period, if that's what you mean look at this


[quote]// Open a known directory, and proceed to read its contents
$dir = "/home/blah/public_html/blah/images/;
$picturestring= explode("public_html",$dir);

if (is_dir($dir))
{
  if ($dh = opendir($dir))
  {
        while (($file = readdir($dh)) != false)
  {
 
$testpic= explode(".",$file);
If ($testpic[1] == "png" OR $testpic[1] == "gif" OR $testpic[1] == "jpg")
{

$piclocation = "http://www.yourwebsite.com".$picturestring[1].$file;
[/quote]

hmm that's kinda confusing, i sjut ported that off mywebsite, any questions jsut ask
btw $dir has to be full directory on your server like that one shows
$piclocation is the location of the current pic the directory is reading, so next you'd do whatver you want may
echo "<img src='$piclocation'>":  - to jsut simply display it, or you could laod it into a variable, whatever
Link to comment
Share on other sites

is this what you are looking for?

[code]
<?php
function Get_Image($path) {
  $ctr = 0;

  if ( $img_dir = @opendir($path) ) {
      while ( false !== ($img_file = readdir($img_dir)) ) {
        // add checks for other image file types here, if you like
        if ( preg_match("/(\.jpg)$/", $img_file) ) {
            $images[$ctr] = $img_file;
            $ctr++;
        } // end if
      } // end while
      closedir($img_dir);
      $image = $images[array_rand($images)];
      return $image;
  } else {
        return "invalid path";
  } // end else
} // end function

$somepath = 'path/to/images/';
$image = Get_Image($somepath);
?>
[/code]

you could of course modify this to return more than 1 result by changing this:

[code]
$image = $images[array_rand($images)];
[/code]
to this:
[code]
$num = 50; // or however many
for ($x = 0; $x < $num; $x++) {
  $image[] = $images[array_rand($images)];
}
[/code]

and then it would return an array of image names to be used as such:

[code]
// from first example:
echo "<img src = '$somepath/$image'>";

// example if returning array:
echo "<img src = '$somepath/{$image[0]}'>"; // first picture
echo "<img src = '$somepath/{$image[2]}'>"; // third picture

// example of displaying all of them:
foreach ($image as $val) {
  echo "<img src = '$somepath/$val'>";
}
[/code]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.