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

时间:2012-06-16 00:36:26

标签: php image hyperlink png 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)功能,但它似乎不起作用......

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

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

应该是:

$online = 'online.png';

创建一个未知状态图像并将其放入$unknown

答案 1 :(得分:0)

图片应该是单独的请求(因此,在您的html页面中添加<img src="/yourimagescript.php">,并在单独的脚本中仅输出图片,否html。你可以使用data:协议嵌入(小)图片,但我强烈建议反对它。