将PHP文件链接为PNG图像?- 图像是基于服务器状态的变量


Link PHP file as PNG image? - Image is a variable based on server status

这是我的代码,你可以通过转到以下位置查看它的示例:www.craftquake.com/statusChecker.php?site=MCnet

<?php
$getter = $_GET['site'];
if ($getter == 'ts3')
    { $site = test_port('ts3.craftquake.com',10011,4); }
if ($getter == 'MCquake')
    { $site = test_port('play.craftquake.com',25565,4); }
if ($getter == 'MCnet')
    { $site = test_port('minecraft.net',80,4); }
$teamspeak = test_port('ts3.craftquake.com',10011,4);
$online = '<img src="/online.png">';
$offline = '<img src="/offline.png">';
$unknown = '<span class="status-unknown" id="status-image">Unknown</span>';
function test_port($host,$port=80,$timeout=1)
{
        $fsock = fsockopen($host, $port, $errno, $errstr, $timeout);
        if ( ! $fsock )
        {
                return FALSE;
        }
        else
        {
                return TRUE;
        }
}
?>
##HEADER & CSS, ETC
<?php
if ($site == 1)
    { $status = $online;
    } else if ($site == 0) {
    $status = $offline;
    } else {
    $status = $unknown;
}
header('content-type: image/png');
readfile($status);
echo $status;
?>

我想在页面的页脚中链接到此页面以显示状态。我使用另一个站点的脚本将他们的 Minecraft.net 服务器状态链接为 ,并且它运行良好,但我不知道他们是如何做到这一点的。图像是PNG的,但如果只有一种格式有效,我可以转换它们。

我已经尝试了标题(blablabla)功能,但它似乎不起作用...

谢谢!

您的变量包含 HTML 而不是图像文件的路径名:

$online = '<img src="/online.png">';

应该是:

$online = 'online.png';

创建一个未知的状态图像并将其也放在$unknown中。

图像应该是一个单独的请求(因此,在您的 html 页面中放置一个<img src="/yourimagescript.php">,在该单独的脚本中仅输出图像,而不输出 html。您可以使用data:协议嵌入(小)图像,但我强烈建议不要这样做。