Avatar billede angelenglen Nybegynder
16. august 2003 - 14:08 Der er 2 kommentarer og
3 løsninger

vis random billed fra folder på server.

jeg har en server, hvori der er en mappe der hedder randomimages

i denne mappe ligger der et ukendt antal billeder (max 99), som dog er navngivet:
01.jpg
02.jpg
....
99.jpg

altså:
randomimages/01.jpg
randomimages/02.jpg
....
randomimages/99.jpg


-det jeg mangler, er en funktion eller lign, der kigger hvor mange filer der ligger i mappen, og så vælger et tilfældigt som den så viser i en kode der fx kunne være:


<table border="0" cellpadding="0" cellspacing="0"><tr>
<td><img src="randomimages/<? echo randomimage(); ?>" border="0"></td>
</tr></table>


-så det jeg mangler er :

<? function randomimage() {
  no idea what to put here
} ?>


håber nogen har en dejlig lille funktion liggende til mig...
-og bare rolig, der kommer ALDRIG mere end 99 billeder i mappen, og der kommer IKKE et billed ved navn 00.jpg
Avatar billede leif Seniormester
16. august 2003 - 14:12 #1
Dette burde virke:

<?

if ($dir = @opendir("/den/fulde/sti/til/mappen/")) {
$counter = 0;
while($file = readdir($dir)) {
  if (is_dir($file)) {
  } else {
  $imgarr[$counter]=$file;
  $counter++;
  }
}
closedir($dir);
}
$rows=count($imgarr)-1;


echo "<img height=\"209\" width=\"431\" src=\"/mappen/".$imgarr[rand(0,$rows)]."\"><br>";


?>
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:13 #2
Hejsa!

Jeg har selv lige oprettet et spørgsmål http://www.eksperten.dk/spm/388237 som cirka omhandler det samme... bortset fra at jeg har problemer med det, men scriptet virker.... det er bare mig der har lavet en eller anden dum fejl... her er link til scriptet: http://www.sukos.dk/php/rand/

HYGGE
Avatar billede jara06 Nybegynder
16. august 2003 - 14:21 #3
slamkode, men pyt :)

function test()
{
    $dir = "./pics";
    $image_ext = array(".jpg", ".jpeg", ".gif", ".png", ".bmp");
   
    if (!file_exists($dir)) /* file_exists works for directory's as well */
    {
        echo "Directory error, please check if \"". $dir ."\" exists. <br/> \n";
        return false;
    }
    $showdir = dir($dir);
    $step = 0;

    $d = array();

    while($f = $showdir->read())
    {
        if  (ereg ("^\." , $f))  /* if filename starts with a . (dot), ignore it */
        {
            continue;
        }
        if(is_dir($dir . $f))  /* $dir is the directory & $f is the file */
        {
            continue;
        }
        else
        {
            if ($ext = strtolower(strrchr($dir . $f, ".")))  /* put the extention of the file in $ext */
            {
                for ($i = 0; $i < count($image_ext); $i++)
                {
                    if ($image_ext[$i] == $ext)
                    {
                        $d[] = $f;
                        break;
                    }
                }
            }
            else
            {
                continue;
            }
        }
        $step++;
    }
    $showdir->close();

    $antal = count($d);
    $c = mt_rand(0, $antal - 1);
    $d = $d[$c];
   
    return $d;  /* return the random filename */
   
}
Avatar billede angelenglen Nybegynder
16. august 2003 - 17:17 #4
det ser ret okay ud, prøver mig lidt frem.
Avatar billede angelenglen Nybegynder
05. september 2003 - 22:22 #5
hmm den havde jeg glemt.. kan ikke huske om det virkede, så i deler points
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester