problemer med random billede fra mappe
Hej Experter,jeg har et PHP script som vælger et tilfældigt billede ud af alle billederne i en given mappe. Jeg henter et tilfeldigt billede ved at kalde script-filen således: <img src="random/random.php" />.
Mit problem er at jeg skal kalde denne fil flere gange fra den samme side (så jeg ender med X antal tilfældige billeder på siden jeg kalder fra), men ender hele tiden med X gange det samme billede (dog et nyt billede hver gang jeg refresher).
Jeg kan ikke finde ud af om det er min browser der cacher random.php for hvert kald, eller om scriptet bare eksekveres så hurtigt (X antal gange) at der ikke er nogen forskel på hvilket billede den spytter ud X antal gange.
Min kode er som følger (random.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) {
srand ((double) microtime( )*1000000);
$random_number = rand(0,count($fileList));
$img = $folder.$fileList[$random_number];
}
}
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);
}
}
?>
---------------------------
Nogen forslag? =)
//foxwell
Ps.: Jeg har prøvet at tilføje følgende til toppen af random.php, stadig uden held:
---------------------------
Header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
Header("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
Header("Pragma: no-cache");