-2

我正在尝试使用 PHP 解析一些 XML 以获得我的 Farming Simulator 2013 专用服务器的状态(请不要笑)。但是,使用 for 循环来获取每个可能的玩家的状态是行不通的。

我的代码如下。

<?php
    $info = simplexml_load_file('http://74.80.133.251:9090/feed/dedicated-server-stats.xml?code=049cb316c7d5137f7f285101d9657f13');
    $playerCount = $info->Slots['capacity'];
    echo $info->Slots['numUsed'];
    echo " slots out of ";
    echo $info->Slots['capacity'];
    echo " used.<br>";
    echo "<ol>";
    for ($1=0; $i<$playerCount; $i++)
    {
            echo "<li>";
            echo $info->Slots-Player[$i]['isUsed'];
            echo "</li>";
    }
    echo "</ol><br>";
?>

源 XML 位于,http://74.80.133.251:9090/feed/dedicated-server-stats.xml?code=049cb316c7d5137f7f285101d9657f13我知道用 C# 解析相当简单,但我不太了解 PHP。有没有人看到我遗漏的东西(可能很简单)或一些想法可以尝试?

4

3 回答 3

1

错误消息非常具有描述性。找到了一个数字而不是一个变量

修复 for 循环中的错字。你有$1而不是$i

for ($1=0; $i<$playerCount; $i++)

应该

for ($i=0; $i<$playerCount; $i++) 
//    ^ 1 should actually be i
于 2013-09-09T16:36:05.060 回答
0

好的,更新和工作代码如下。

<?php
    $info = simplexml_load_file('http://74.80.133.251:9090/feed/dedicated-server-stats.xml?code=049cb316c7d5137f7f285101d9657f13');
    echo "$" . $info['money'] . "<br>";
    echo $info['mapName'] . "<br>";
    echo $info->Slots['numUsed'];
    echo " slots out of ";
    echo $info->Slots['capacity'];
    echo " used.<br>";
    echo "<ol>";
    foreach ($info->Slots->children() as $player)
    {
            echo "<li>" . $player['isUsed'] . "</li><br>";
    }
    echo "</ol><br><ol>";
    foreach ($info->Vehicles->children() as $vehicle)
    {
            echo "<li>" . $vehicle['name'] . "</li><br>";
    }
    echo "</ol><br>";
?>

给我我关心的漂亮简单的状态页面。减去一些我将在稍后处理的格式。

于 2013-09-09T16:54:57.837 回答
0

我相信你有两个错误

for ($i=0; $i<$playerCount; $i++)
    {
            echo "<li>";
            echo $info->Slots->Player[$i]['isUsed'];
            echo "</li>";
    }

你有 1 而不是 i,你在一个回声中错过了一个 >

于 2013-09-09T16:46:56.370 回答