我試圖建立一個網站,從服務器上的文件夾拉4張隨機照片,並提出他們在一個div中的一個小模塊。發生了什麼是相同的4張照片被稱爲。我怎樣才能打電話給4張不同的照片?php腳本顯示從一個文件夾中的4個隨機照片顯示4次相同的照片
繼承人的random.php文件:
<?php
$folder = '.';
$extList = array();
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$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 ("Can't initialize 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);
}
}
?>
這裏的random.php是如何被稱爲:
<?php
/* DATA */
$data = array(
array('COUNT', '88', 'Here are a few of them', '1, 2, 3, 4'),
);
?>
<div>
<table class="reop" border='0' width='100%' cellpadding='0' cellspacing='10'>
<?php
$count = 0;
foreach($data as $row) {
$class = ($count % 2 == 1 ? " class='alt'" : '');
echo "<tr$class>";
for($j = 0; $j < count($row); $j++) {
if ($j!=3) {
echo "<td class='cell_$j'>$row[$j]</td>";
} else {
// $avatar = '';
$array = preg_split('/,/', $row[$j], -1, PREG_SPLIT_NO_EMPTY);
foreach ($array as $val) {
$avatar .= '<img src="/staffpics/random.php"> ';
}
echo "<td class='cell_$j'>$avatar</td>";
}
}
echo '</tr>';
// $count++;
}
?>
</table>
我沒有答案,但我確實知道爲什麼4張圖片會出現相同情況:您的瀏覽器會緩存所有圖片。一旦它從服務器加載了一個圖像,就認爲不需要再次加載相同的圖像(即具有相同的文件名)。那麼也許給他們4個不同的名字? – 2011-12-20 19:38:29
@Mr李斯特 - 這聽起來像是對我的回答。 – 2011-12-20 19:39:38
@MrLister - 嗯,/ staffpics /中的所有圖像都命名爲[1.jpg,2.jpg。 3.jpg,...]這是你的意思嗎? – tronjavolta 2011-12-20 19:41:25