0

我正在解析 RSS 提要并尝试根据 RSS 数据更新我的火力库。如果我使用硬编码字符串更新标题,例如“foo”,它工作正常。

   $sacarray = array('title' => 'foo');
   $response = $fb->update('/sac/past1', $sacarray);

结果是:

sac => 过去 1 => 标题:foo

但是,如果我通过我的变量进行更新,它会在“标题”下方添加一个不经意的额外节点。

    $items = $xml->channel->item;
    for ($i = 1; $i < 2; $i++)
    {     
        $sacarray = array('title' => $items[$i]->title);
        $response = $fb->update('/sac/past1', $sacarray);    
    }

所以它在我的firebase中看起来像:

sac => 过去 1 => 标题 => 0:foo

不知道我做错了什么。我在不同的 php 文件中有一些非常相似的代码,这些代码运行良好,所以我无法弄清楚我在做什么不同。似乎它正在错误地解释 $items[$i]->title 。

4

1 回答 1

0

好吧,我想通了。可能不是正确的解决方案,但我发现了一些可行的方法。

如果我试图将 rss 项目标题放入一个新变量中,我仍然遇到同样的问题:

$title = $items[$i]->title;
$sacarray = array('title' => $title);

但是如果在标题上附加一些东西(一个空字符)——那么它决定把它当作一个字符串来处理,一切都按我的预期工作。

$title = $items[$i]->title.'';
$sacarray = array('title' => $title);

不确定这是否与我不知道的 php 字符串处理有关,因为我没有做很多 php 编码。或者,如果这是由我用来解析 rss 提要的 SimpleXmlElement 类引起的。

更新:好的,我刚刚发现转换为字符串也可以。我仍然不明白为什么它需要铸造。

于 2013-10-30T22:24:57.453 回答