【问题标题】:PHP Image not showing in HTML using img element使用 img 元素在 HTML 中未显示 PHP 图像
【发布时间】:2013-07-15 11:40:40
【问题描述】:

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

【问题讨论】:

标签: php html


【解决方案1】:

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

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

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

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

【讨论】:

  • 抱歉,似乎 Stack 删除了链接到它的 PHP 文件,它正在回显我的图像 pastebin.com/cbtKkWS1 正如你所看到的,当 X 人在线/离线时,它会回显图像并正确返回它他们的流图像相应地发生变化,我之前有一个像这样的 php 文件,我似乎无法弄清楚在这种情况下它有什么问题!
  • 嗯,是的,它正确地回显了 html。因此,当您将其作为网页打开时,它看起来不错。但是,如果您想在 &lt;img /&gt; 中使用它,则需要将该页面用作图像而不是 html 页面。
【解决方案2】:

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

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

【讨论】:

  • 对不起,似乎 Stack 删除了链接到它的 PHP 文件,它正在回显我的图像 pastebin.com/cbtKkWS1 正如你所看到的,当 X 人在线/离线时,它会回显图像并正确返回它他们的流图像相应地发生了变化,我之前有一个像这样的 php 文件,我似乎无法弄清楚在这种情况下它有什么问题!
  • header('Content-Type: image/png'); 添加到您链接的文件的第一行。
【解决方案3】:

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

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

它将为请求发送实际图像,而不是发送标记。对于img 标记,src 标记无效。

更新您在下面修改的代码。

$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;

【讨论】:

  • 很抱歉,我在 php 方面很垃圾,你能给我一个完整的例子吗?因为我不确定它应该去哪里/删除/更改 xD 我基本上只是希望它显示在线/离线的图像,当前游戏/标题不需要所以理论上我只想要
  • 我需要在你的代码中多看一点你的当前标记
  • pastebin.com/Mn7gM7D4 但由于某种原因,现在我得到 Parse error: syntax error, unexpected T_VARIABLE in /home/isykonvi/public_html/stream/status.php on line 3
  • @DanielStarmer 我添加了更新代码,您可以直接复制粘贴。
  • 它成功了!,非常感谢你,伙计!虽然我还有另一个问题,我应该打开一个新的东西还是你认为你可以帮忙?它具有相同的 status.php,我基本上想要它,这样当他们直接从目录访问 status.php 时,它会返回打印:错误:请在您的链接中放置一个流用户。例如:konvictgaming.com/status.php?channel=konvictgaming
【解决方案4】:

我想你在这个页面上动态地改变了图片。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 2012-10-17
    • 2011-09-09
    • 2021-07-07
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多