0

您好,我有一个包含以下内容的 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

4 回答 4

6

url不是图片,是网页,内容如下

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

网页不能显示为图像。您将需要编辑页面以仅传输带有正确 http-headers 的实际图像。

您可以通过谷歌搜索“php 动态图像”找到一些帮助。

于 2013-07-15T11:45:06.597 回答
2

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

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

于 2013-07-15T11:44:53.720 回答
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;
于 2013-07-15T11:47:05.207 回答
1

我想您在此页面上动态更改图片。

更改最少的最简单方法就是使用 iframe:

<iframe src="http://konvictgaming.com/status.php?channel=blindsniper47">    </iframe>
于 2013-07-15T11:45:38.140 回答