Ole wrote:
> men jeg har et billede, top.jpg, jeg gerne vil gøre det samme med, men det 
> kan jeg ikke få til at fungere.
> 
> Har en af jer en lige så simpel løsning når det gælder billeder.
Man kan ikke inkludere binære data på den måde i sit (x)HTML output og 
det giver derfor ikke rigtig mening at udlæse et billede direkte fra 
filen ud i dit (x)HTML - hvad enten du benytter PHP eller andet lignende 
scriptsprog.
Hvis du vil inkludere et random antal billeder er der umiddelbart to 
"simple" løsninger:
1) du har en liste over billed filerne liggende i et array i den fil 
hvor du skal inkludere dit billede. Du udtrækker et random tal der 
svarer til et random nummer mellem 0 og max antallet af indgange i dit 
billed-array.
Herefter udlæser du det valgt navn til din kode:
$arrayPictures = (
   'billede0.jpg',
   'billede1.jpg',
   'billede2.jpg'
);
mt_srand((double)microtime()*1000000); // seed for PHP < 4.2
$rand = mt_rand(0, count($arrayPictures));
echo "<img src=\"".$arrayPictures[$rand]."\" />";
2) kan det gøres mere avanceret - således at du enten udtrækker listen 
fra en database eller fx direkte fra filsystemet og direkte genererer 
din billedfil ud fra de læste data. Dette gøres i en seperat fil som du 
ikke inkluderer via include() men inkluderer i din kode ved at benytte:
<img src="mit_php_billed_script.php" />
i stedet.
Det vigtige er så at mit_php_billed_script.php sætter de rigtige headers 
inden du udlæser de binære data.
Et simpelt eksempel:
<?php
   // Make this the relative path to the images, like "../img"
   // or "random/images/".
   // If the images are in the same directory, leave it blank.
   $folder = 'random/images/';
   // Space seperated list of extensions, you probably won't
   // have to change this.
   $exts = 'gif';
   $files = array();
   if ('' == $folder) $folder = './';
   $handle = opendir($folder);
   $exts = explode(' ', $exts);
   while (false !== ($file = readdir($handle))) {
     foreach($exts as $ext) { // for each extension check the extension
         if (preg_match('/\.'.$ext.'$/i', $file, $test)) { // faster 
than ereg, case insensitive
             $files[] = $file; // it's good
             }
         }
     }
   closedir($handle); // We're not using it anymore
   mt_srand((double)microtime()*1000000); // seed for PHP < 4.2
   $rand = mt_rand(0, count($files);
         //// Internal functions:
         function load_jpeg($imgname) {
                 $im = @imagecreatefromgif($imgname); /* Attempt to open */
                         if (!$im) { /* See if it failed */
                                 $im  = imagecreate(135, 135); /* Create 
a blank image */
                                 $bgc = imagecolorallocate($im, 255, 
255, 255);
                                 $tc  = imagecolorallocate($im, 0, 0, 0);
                                 imagefilledrectangle($im, 0, 0, 135, 
135, $bgc);
                                 /* Output an errmsg */
                                 imagestring($im, 1, 5, 5, "Error 
loading $imgname", $tc);
                         }
                 return $im;
         }
         //// Output the picture
         $image = load_jpeg( $folder.$files[$rand] );
         header("Content-type: image/gif");
         imagegif($image);
?>
Ovenstående kode er meget simpel kode der er genereret ud fra et par 
læsninger i PHP online manualen og leverer fx et fuldt fungerende random 
script til læsning af gif filer fra et dir.
At udvide ovenstående til enten at læse fra en database eller at 
understøtte andre filer end gif er dog ikke så svært.
-- 
Med venlig hilsen
Geert Lund,
www.GLD.dk