Gå til innhold

Hvordan få til "Tilfeldig bilde" på siden?


Anbefalte innlegg

Topic sier det meste..

Har seg sånn at siden skal inneholde en del bilder og på forsiden vil jeg ha en liten "boks" med et tilfeldig bilde i som skriptet henter automatisk opp et tilfeldig hver gang man går inn på siden på nytt eller refresher.

 

Kan noen hjelpe meg med scriptet? Den skal være under header og over venstre sidebar med maks bredde på "8em".

 

:)

Endret av gilera
Lenke til kommentar
Videoannonse
Annonse

Nå har jeg prøvd det jeg kan her..

 

1 Copy/paste the code above

2 Name the file random.php

3 Place in the same directory in which your images reside

4 Reference random.php in your src. For instance:

<img src="image_path/random.php" ...>

 

Det har jeg gjort, men får det fortsatt ikke til :(

 

Koden er som følger:

 

<?php

   $folder = '.';

   $extList = array();
   $extList['gif'] = 'image/gif';
   $extList['jpg'] = 'image/jpeg';
   $extList['jpeg'] = 'image/jpeg';
   $extList['png'] = 'image/png';

$img = null;

if (substr($folder,-1) != '/') {
   $folder = $folder.'/';
}

if (isset($_GET['img'])) {
   $imageInfo = pathinfo($_GET['img']);
   if (
       isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
       file_exists( $folder.$imageInfo['basename'] )
) {
   $img = $folder.$imageInfo['basename'];
}
} else {
   $fileList = array();
   $handle = opendir($folder);
   while ( false !== ( $file = readdir($handle) ) ) {
       $file_info = pathinfo($file);
       if (
           isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
           $fileList[] = $file;
       }
   }
   closedir($handle);

   if (count($fileList) > 0) {
       $imageNumber = time() % count($fileList);
       $img = $folder.$fileList[$imageNumber];
   }
}
if ($img!=null) {
   $imageInfo = pathinfo($img);
   $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
   header ($contentType);
   readfile($img);
} else {
   if ( function_exists('imagecreate') ) {
       header ("Content-type: image/png");
       $im = @imagecreate (100, 100)
           or die ("Cannot initialize new GD image stream");
       $background_color = imagecolorallocate ($im, 255, 255, 255);
       $text_color = imagecolorallocate ($im, 0,0,0);
       imagestring ($im, 2, 5, 5, "IMAGE ERROR", $text_color);
       imagepng ($im);
       imagedestroy($im);
   }
}
?> 

Lenke til kommentar
Gjest Slettet-IHWlGMJn

Veldig kort og greit script jeg har brukt selv

<?php
// Change the folder name to your one in the line below
$folder = "folder_name"; 
srand( time() );
if ($directory = @opendir($folder)) {
while (($image = readdir($directory)) !== false) {
if ( eregi( '.(jpg|gif)$', $image ) ) { $images[] = $image; }
} 
closedir($directory);
}
$image = $images[rand() % sizeof( $images )];
if ( eregi( '.jpg$', $image ) ) {
header( "Content-Type: image/jpeg" );
} else {
header( "Content-Type: image/gif" );
}
header( "Content-Length: " . filesize( $folder."/".$image ) );
readfile( $folder."/".$image );
?>

Bruken av det burde være selvforklarende... støtter jpg og gif sånn som det er skrevet nå..

 

Men hvorfor ligger tråden i HTML/CSS og ikke i PHP?

Endret av Slettet-IHWlGMJn
Lenke til kommentar

Veldig kort og greit script jeg har brukt selv

<?php
// Change the folder name to your one in the line below
$folder = "folder_name"; 
srand( time() );
if ($directory = @opendir($folder)) {
while (($image = readdir($directory)) !== false) {
if ( eregi( '.(jpg|gif)$', $image ) ) { $images[] = $image; }
} 
closedir($directory);
}
$image = $images[rand() % sizeof( $images )];
if ( eregi( '.jpg$', $image ) ) {
header( "Content-Type: image/jpeg" );
} else {
header( "Content-Type: image/gif" );
}
header( "Content-Length: " . filesize( $folder."/".$image ) );
readfile( $folder."/".$image );
?>

Bruken av det burde være selvforklarende... støtter jpg og gif sånn som det er skrevet nå..

 

 

Men hvorfor ligger tråden i HTML/CSS og ikke i PHP?

Tusen takk :)

 

Den ligger her firdi jeg postet feil :p

Lenke til kommentar

Den koden du har er egentlig litt dårlig siden den krever mye ressurser fra serveren og i tillegg gjør at brukeren må laste ned bildet på nytt hver gang han loader siden. Jeg ville heller latt bildene være statiske URL-er og så bytte man hvilken URL som skal brukes.

 

Noe lignende dette med andre ord (Skrevet på 2 min og ikke testet):

<?php
function get_rand_url() 
{
$urls = array(
"bilde1.jpg",
"bilde2.png",
"bildelfskdjfl.jpg",
"noe/langt/borte/mother.jpg",
"http://www.annenside.no/noe/something/hei.gif"
);

return array_rand($urls);
}

echo '<img src="'. get_rand_url() .'" />';
?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...