我正在尝试创建一个html页面,该页面使用php页面来决定在设定的时间显示什么图像。
唯一的问题是,当我进入php页面时,它将显示正确的图像,但是当我尝试img src的php页面时,它会在HTML页面上显示死链接。这是我在HTML和PHP页面上使用的代码。
HTML:
<html>
<body>
<img src="http://itcacher85.hostzi.com/getImage.php" />
</body>
</html>
getImage.php:
<?php
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: January 01, 2013'); // Date in the past
header('Pragma: no-cache');
$h = date('Hi');
if ($h >= 2100 && $h < 2230){ $img = '40px-Dni5.png'; }
elseif ($h >= 2230 && $h < 0000){ $img = '40px-Dni3.png'; }
elseif ($h >= 0000 && $h < 0130){ $img = '40px-Dni7.png'; }
elseif ($$h >= 0130 && $h < 0137){ $img = '40px-Dni6.png'; }
elseif ($h >= 0137 && $h < 0138){ $img = '40px-Dnisolve.png'; }
elseif ($h >= 0138 && $h < 0300){ $img = '40px-Dni6.png'; }
elseif ($h >= 0300 && $h < 0430){ $img = '40px-Dni4.png'; }
elseif ($h >= 0430 && $h < 0600){ $img = '40px-Dni5.png'; }
else{ $img = 'where.png'; }
?>
<img src="<?php echo $img; ?>">
如果您转到PHP页面,此代码将显示图像,但是当您将其作为图像链接时,它不起作用。我做了一些研究,发现我可能需要添加标题:
header('Content-type: image/png');
但是当我添加它时,我得到一个死链接,并且在php页面或HTML页面上都没有显示图像。任何帮助将不胜感激。
答案 0 :(得分:4)
请使用以下代码:
,而不是使用图片代码header("Content-Type: image/png");
readfile($img);
使用图像标记时,源必须是图像数据,而不是其他图像标记。
答案 1 :(得分:2)
这不是图像的工作方式。您需要输出图像的数据,而不是另一个HTML片段。
<?php
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: January 01, 2013'); // Date in the past
header('Pragma: no-cache');
header('Content-Type: image/png');
$h = date('Hi');
if ($h >= 2100 && $h < 2230){ $img = '40px-Dni5.png'; }
elseif ($h >= 2230 && $h < 0000){ $img = '40px-Dni3.png'; }
elseif ($h >= 0000 && $h < 0130){ $img = '40px-Dni7.png'; }
elseif ($h >= 0130 && $h < 0137){ $img = '40px-Dni6.png'; }
# HEY! ^ LOOK OVER HERE! ... too many $ signs.
elseif ($h >= 0137 && $h < 0138){ $img = '40px-Dnisolve.png'; }
elseif ($h >= 0138 && $h < 0300){ $img = '40px-Dni6.png'; }
elseif ($h >= 0300 && $h < 0430){ $img = '40px-Dni4.png'; }
elseif ($h >= 0430 && $h < 0600){ $img = '40px-Dni5.png'; }
else{ $img = 'where.png'; }
readfile($img);
?>