matrixmark, try this:
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['status'] = $query->GetInfo();
$info['players'] = $query->GetPlayers();
} catch (SourceQueryException $e)
{
$info = $e->getMessage();
}
$cache->set($server['name'], $info);
}
?>
<table style="width:500px;">
<?php if (is_array($info)): ?>
<caption style="color:#000;">
<?php echo htmlspecialchars($info['status']['HostName']); ?><br>
<?php echo $server['ip'] . ':' . $server['port']; ?> | map: <?php echo htmlspecialchars($info['status']['Map']); ?> | players: <?php echo $info['status']['Players']; ?>/<?php echo $info['status']['MaxPlayers']; ?>
</caption>
<?php if (is_array($info['players'])): ?>
<thead>
<tr><th>player</th><th>score</th><th>play time</th></tr>
</thead>
<?php foreach ($info['players'] as $player): ?>
<tr><td><?php echo htmlspecialchars($player['Name']); ?></td><td><?php echo $player['Frags']; ?></td><td><?php echo $player['TimeF']; ?></td></tr>
<?php endforeach; ?>
<?php endif; ?>
<?php else: ?>
<caption style="color:#ff0000;"><?php echo $server['ip']; ?>:<?php echo $server['port']; ?> (offline)</caption>
<?php endif; ?>
</table>
<?php
}
?>
__________________