img src中的php页面

时间:2012-12-23 16:09:06

标签: php image

我正在尝试创建一个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页面上都没有显示图像。任何帮助将不胜感激。

2 个答案:

答案 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);
?>