0

我正在使用 bukkit JSONAPI 和 php JSONAPI.php 将我的 minecraft 服务器上的玩家列表获取到我的网站。为了得到计数,我这样做:

require('JSONAPI.php'); // get this file at:      https://github.com/alecgorge/jsonapi/raw/master/sdk/php/JSONAPI.php

$api = new JSONAPI("localhost", 20059, "user", "pass", "salt");

$limit = $api->call("getPlayerLimit");
$count = $api->call("getPlayerCount");

$c = curl_init($url);
curl_setopt($c, CURLOPT_PORT, 20059);
curl_setopt($c, CURLOPT_HEADER, false);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_TIMEOUT, 10);
$result = curl_exec($c);
curl_close($c);
echo "<h5>Players online:</h5>";
$num= '' . $count['success'] . '/' . $limit['success'];
echo $num;

这将返回:1/40 然后,我尝试获取播放器列表:

$list = $api->call('getPlayerNames');
echo $list;

这只是返回: Array 但是,当我这样做时

var_dump($api->call('getPlayerNames'));

我得到:

array(3) { ["result"]=> string(7) "success" ["source"]=> string(14) "getPlayerNames" ["success"]=> array(1) { [0]=> string(8) "gauso001" } }

但是,我想要的只是一个没有所有额外内容的球员名单。抱歉,如果这是一个菜鸟问题,我只知道非常基本的 PHP。

可能有帮助的东西:方法文档:http ://alecgorge.com/minecraft/jsonapi/apidocs/#package-JSONAPI%20standard 告诉我还有什么......

提前谢谢你,我希望有一天我会在 PHP 方面和你一样好 :D

4

2 回答 2

1

奇怪的是,看起来玩家姓名作为数组包含在success键中。

要访问玩家名称,您可以:

$list = $api->call('getPlayerNames');
// debug
print_r($list['success']);
// direct access
echo $list['success'][0];
// loop
foreach($list['success'] as $player) {
    echo $player;
}

根据您的需要格式化。但这应该让你开始。

注意:我还鼓励您了解PHP 中的数组

于 2013-07-10T21:38:00.310 回答
0

$api->call('getPlayerNames')返回一个命名数组,其中一个键 ( success) 是另一个包含玩家姓名的数组。遍历success键以获取播放器列表。

$players = $api->call('getPlayerNames');
foreach($players['success'] as $player) {
    echo $player;
}
于 2013-07-10T21:39:28.367 回答