对于这个项目,我需要根据MySQL数据库中的数据为页面创建动态徽标。该表存储图像索引,前景色和背景色。
出于测试目的,我在Photoshop中创建了一个小图像来模拟图像,我使用随机数创建前景色。
我想在每页创建多个随机图像,但浏览器会在每次调用时保持图像的资源相同。有没有办法在同一页面上创建多个随机图像?
我试图尝试使用随机查询字符串和输出缓冲工作,但他们没有给我任何运气。
截图:
目录结构:
index.php
logo.png/
logo.png/circle.png
logo.png/index.php
的index.php
<html>
<body style="background-color: #000000; color: #FFFFFF; font-family: 'Segoe UI'">
<?php
for ( $i = 0 ; $i <= 10 ; $i++ )
{
echo "<img src='logo.png' />";
}
?>
</body>
</html>
logo.png / index.php的
<?php
$im = imagecreatefrompng("circle.png");
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);
$x = imagecolorexact($im, 0xFF, 0xFF, 0xFF);
$y = imagecolorexact($im, 0xCC, 0xCC, 0xCC);
$z = imagecolorexact($im, 0xAA, 0xAA, 0xAA);
$randx = mt_rand(0, 255);
$randy = mt_rand(0, 255);
$randz = mt_rand(0, 255);
imagecolorset($im, $x, $randx, $randz, $randz);
imagecolorset($im, $y, $randy, $randy, $randx);
imagecolorset($im, $z, $randz, $randx, $randy);
header('Content-Type: image/png');
imagepng($im);
?>
答案 0 :(得分:0)
有可能是您的图像被浏览器缓存,因此只有一个请求正在进行,并且所有十个呼叫都会重复相同的图片。
您需要使用随机GET参数使每个网址看起来不同,例如:像这样:
<?php
for ( $i = 0 ; $i <= 10 ; $i++ )
{
$postfix = mt_rand(0, 10000);
echo "<img src='logo.png?random=$postfix' />";
}
?>
但请注意,这会使图像无法缓存:GD会在每次请求时重新运行。但看起来这就是你想要的行为。