我正在尝试使用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。有没有人看到我想要的东西(可能很简单)或者想要尝试一些想法?
答案 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>";
?>
给我一个我关心的简单状态页面。减去一些我将在稍后处理的格式。