0

这是我的代码,您可以通过以下网址查看它的示例: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 的,但如果只有一种格式有效,我可以转换它们。

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

非常感谢!

4

2 回答 2

1

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

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

应该:

$online = 'online.png';

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

于 2012-06-16T00:39:01.083 回答
0

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

于 2012-06-16T00:40:25.020 回答