PHP Code:
<?php
require_once('JG_Cache.php');
require_once('SourceQuery.class.php');
$servers = array(
// add servers like this:
//'server_01' => array ('name' => 'My shitty server', 'ip' => 'abc.example.com', 'port' => '27015'),
//'server_02' => array ('name' => 'My crap server', 'ip' => '1.2.3.4', 'port' => '27015'),
'server_03' => array('name' => 'My awesome server', 'ip' => 'dks.servehalflife.com', 'port' => '27016')
);
foreach ($servers as $server) {
$cache = new JG_Cache('/tmp');
$info = $cache->get($server['name'], 60); // second paramater = cache time in seconds
if ($info === false) {
$query = new SourceQuery();
try {
$query->Connect($server['ip'], $server['port']);
$info = $query->GetInfo();
} catch (SourceQueryException $e) {
$info = $e->getMessage();
}
$cache->set($server['name'], $info);
}
if (is_array($info)) {
echo '<div style="color:#fff;">' . $server['ip'] . ':' . $server['port'] . ' | map: ' . $info['Map'] . ' | players: ' . $info['Players'] . '/' . $info['MaxPlayers'] . '</div>';
}
else {
echo '<div style="color:#ff0000;">' . $server['ip'] . ':' . $server['port'] . ' (offline)</div>';
}
}
Requires these two classes:
in the same directory.
I didn't add the id, because that will be a problem if you add more servers (ids need to be unique). Use a class instead.
__________________