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ですが、動作するフォーマットが1つしかない場合は、それらを変換できます.

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 に答える