如何从源查询中提取特定数据?

时间:2018-07-29 17:11:08

标签: php arrays

我正在使用SourceQuery php查询Steam游戏服务器,但是我挂了如何使其显示要在表中而不是整个数组转储中显示的值的方法。是的,我尝试与创建者联系这并没有任何回应。

这是我的文件:

<?php
require __DIR__ . '/../SourceQuery/bootstrap.php';

use xPaw\SourceQuery\SourceQuery;

Header( 'Content-Type: text/plain' );
Header( 'X-Content-Type-Options: nosniff' );

define( 'SQ_SERVER_ADDR', 'localhost' );
define( 'SQ_SERVER_PORT', 27015 );
define( 'SQ_TIMEOUT',     1 );
define( 'SQ_ENGINE',      SourceQuery::SOURCE );

$Query = new SourceQuery( );

try
{
    $Query->Connect( SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE );

    print_r( $Query->GetInfo( ));
    print_r( $Query->GetPlayers( ) );

}
catch( Exception $e )
{
    echo $e->getMessage( );
}
finally
{
    $Query->Disconnect( );
}?>

我想做的就是将查询到的数组值放在这样的表中:

<tr>
<td align="center" width="50"><strong>Server Name</strong></td>
<td align="center" width="150"><strong><?php echo $query['name'];?></strong> 

这是Web浏览器中显示的内容:

Array (
[Protocol] => 17
[HostName] => Server 1
[Map] => gm_flatgrass
[ModDir] => garrysmod
[ModDesc] => Sandbox
[AppID] => 4000
[Players] => 0
[MaxPlayers] => 16
[Bots] => 0
[Dedicated] => d
[Os] => l
[Password] => 
[Secure] => 1
[Version] => 18.02.07
[ExtraDataFlags] => 177
[GamePort] => 27015
[SteamID] => 90116597896180737
[GameTags] =>  gm:sandbox
[GameID] => 4000 )

请使用我提供的代码示例向我清楚地解释一下。 谢谢。

1 个答案:

答案 0 :(得分:0)

他们在序言中提供了他们这样做的方法, 创建一个数组,然后使用服务器信息填充它们。

$Query = new SourceQuery( );

$Info    = Array( );
$Players = Array( );

try
{
    $Query->Connect( SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE );

    $Info    = $Query->GetInfo();
    $Players = $Query->GetPlayers();
}
catch( Exception $e )
{
    $Exception = $e;
}
finally
{
    $Query->Disconnect( );
}

来源:https://github.com/xPaw/PHP-Source-Query/blob/master/Examples/View.php

然后显示填充的数组中的信息。

<tr>
<td align="center" width="50"><strong>Server Name</strong></td>
<td align="center" width="150"><strong><?php echo $Info['HostName'];?></strong>