GameServerQuery вывод?

Это пример файла

<?php
include 'GameServerQuery.php';

echo '<pre>';

var_dump(GameServerQuery::querySource('178.33.129.216', 27022));echo '</pre>';
?>

Это часть файла запроса игрового сервера

    public static function querySource($host, $port)
{
if ($reponse = self::ping($host, $port, "\xFF\xFF\xFF\xFFTSource Engine Query")) {

$cs15 = false;
$info = array();
$header = substr($reponse, 0, 5);

if ($header !== "\xFF\xFF\xFF\xFF\x6D" && $header !== "\xFF\xFF\xFF\xFF\x49") {
return false;
}

if ($reponse[4] == 'm') { //Le moteur CS1.5
$reponse = substr($reponse, 5);
$reponse = strstr($reponse, chr(0));
$cs15 = true;
}
elseif ($reponse[4] == 'I') { // Le moteur source
$reponse = substr($reponse, 5);
}
else {
return false;
}

$info['version']        = self::getByte($reponse);
$info['name']            = trim(self::getString($reponse));
$info['mapname']        = self::getString($reponse);
$info['gamedir']        = self::getString($reponse);
$info['gamedesc']        = self::getString($reponse);
if (!$cs15) $reponse = substr($reponse, 2);
$info['numplayers']    = self::getByte($reponse);
$info['maxplayers']    = self::getByte($reponse);
$info['bot']            = self::getByte($reponse);
$info['dedicated']    = (chr(self::getByte($reponse)) === 'd') ? 1 : 0;
$info['os']                = chr(self::getByte($reponse));
$info['password']        = self::getByte($reponse);
$info['secure']        = self::getByte($reponse);

return $info;
}

return false;
}

И мой вывод

    array(12) {
["version"]=>
int(0)
["name"]=>
string(28) "xGamers Winter Tournament #1"["mapname"]=>
string(8) "de_dust2"["gamedir"]=>
string(7) "cstrike"["gamedesc"]=>
string(10) "Server ~ 1"["numplayers"]=>
int(0)
["maxplayers"]=>
int(16)
["bot"]=>
int(47)
["dedicated"]=>
int(1)
["os"]=>
string(1) "l"["password"]=>
int(0)
["secure"]=>
int(1)
}

Мой вопрос? Есть ли способ для меня, чтобы получить результаты этих результатов так, как я хочу, например.

    MaxPlayers: 16
numPlayers: 0
Name: "xGamers Winter Tournament #1"

Буду признателен за вашу помощь, я не очень хорош в php, но изучение php — одна из моих жизненных целей.

1

Решение

Ты используешь var_dump в массиве вы можете извлечь непосредственно:

<?php
$array = GameServerQuery::querySource('178.33.129.216', 27022);
echo 'Name: '.$array['name'].'<br />';
echo 'numPlayers: '.$array['numplayers'];
/* etc ..... */
?>

или зациклите этот массив:

<?php
$array = GameServerQuery::querySource('178.33.129.216', 27022);
foreach($array as $key => $arg){
echo $key.': '.$arg.'<br />';
}
?>
1

Другие решения

Если вы просто хотите вывести пример на свою страницу, вам нужно сделать небольшой шаблон вывода. Это должно работать:

$data = GameServerQuery::querySource('178.33.129.216', 27022);

echo 'MaxPlayers: ' . $data['maxplayers'] . '<br />';
echo 'numPlayers: ' . $data['numplayers'] . '<br />';
echo 'Name: ' . $data['name'] . '<br />';

Убедитесь, что вы избавились от тега, хотя.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector