1

設定した時間に表示する画像を決定するためにphpページを使用するhtmlページを作成しようとしています。

唯一の問題は、phpページに移動すると正しい画像が表示されることですが、phpページをimg srcしようとすると、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ページのどちらにも画像が表示されません。どんな助けでも大歓迎です。

4

2 に答える 2

4

画像タグを使用する代わりに、次を使用します。

header("Content-Type: image/png");
readfile($img);

画像タグを使用する場合、ソースは別の画像タグではなく、画像データである必要があります。

于 2012-12-23T16:11:36.467 に答える
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);
?>
于 2012-12-23T16:12:06.957 に答える