语法错误,意外T_LNUMBER,在for循环中期望T_VARIABLE或'$'

时间:2013-09-09 16:34:52

标签: xml parsing php

我正在尝试使用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。有没有人看到我想要的东西(可能很简单)或者想要尝试一些想法?

3 个答案:

答案 0 :(得分:1)

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

修复for循环中的拼写错误。您有$1而不是$i

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

应该是

for ($i=0; $i<$playerCount; $i++) 
//    ^ 1 should actually be i

答案 1 :(得分:0)

我相信你有两个错误

for ($i=0; $i<$playerCount; $i++)
    {
            echo "<li>";
            echo $info->Slots->Player[$i]['isUsed'];
            echo "</li>";
    }
你有1而不是我,你错过了一个&gt;在你的一个回声中

答案 2 :(得分: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>";
?>

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