PHP图像没有使用img元素在HTML中显示

时间:2013-07-15 11:40:40

标签: php html

你好,我有一个包含在内的php文件:

当我访问PHP文件时图像显示正确,但是当我尝试在HTML模板中显示它时,它显示为带有裂缝的小img,所以基本上说“图像未找到”

<img src="http://konvictgaming.com/status.php?channel=blindsniper47">

是我用来在HTML模板中显示它,但它似乎并不想显示,我已经尝试搜索我的具体问题没有结果,虽然我确定我可能已经搜错了标题

从下面的OP中添加代码

$clientId = '';             // Register your application and get a client ID at http://www.twitch.tv/settings?section=applications
$online = 'online.png';     // Set online image here
$offline = 'offline.png';   // Set offline image here
$json_array = json_decode(file_get_contents('https://api.twitch.tv/kraken/streams/'.strtolower($channelName).'?client_id='.$clientId), true);

if ($json_array['stream'] != NULL) {
    $channelTitle = $json_array['stream']['channel']['display_name'];
    $streamTitle = $json_array['stream']['channel']['status'];
    $currentGame = $json_array['stream']['channel']['game'];

    echo "<img src='$online' />";
} else {
    echo "<img src='$offline' />";
}

4 个答案:

答案 0 :(得分:6)

网址不是图片,是具有以下内容的网页

<img src='offline.png' alt='Offline' />

网页无法显示为图片。您需要编辑页面以仅使用正确的http-header传输实际图像。

你可以通过谷歌搜索“php dynamic image”找到一些帮助。

答案 1 :(得分:2)

在HTTP标头中指定它是PNG(或其他)图像!

(默认情况下,它们被解释为text / html)

答案 2 :(得分:1)

我想你在这个页面上改变了dynmaclly的图片。

最简单的方法是使用iframe:

<iframe src="http://konvictgaming.com/status.php?channel=blindsniper47">    </iframe>

答案 3 :(得分:1)

在您的status.php文件中,输出<img src=...的标记,将其更改为如下所示

$image = file_get_contents("offline.png");
header("Content-Type: image/png");
echo $image;

这将发送请求的实际图像,而不是发送标记。对于src代码,标记无效img

更新下面修改的代码。

$clientId = '';             // Register your application and get a client ID at http://www.twitch.tv/settings?section=applications
$online = 'online.png';     // Set online image here
$offline = 'offline.png';   // Set offline image here
$json_array = json_decode(file_get_contents('https://api.twitch.tv/kraken/streams/'.strtolower($channelName).'?client_id='.$clientId), true);

header("Content-Type: image/png");
$image = null;
if ($json_array['stream'] != NULL) {
    $channelTitle = $json_array['stream']['channel']['display_name'];
    $streamTitle = $json_array['stream']['channel']['status'];
    $currentGame = $json_array['stream']['channel']['game'];

    $image = file_get_contents($online);
} else {
    $image = file_get_contents($offline);        
}
echo $image;