SimplePie RSS 不接受带有逗号分隔字符串的变量

SimplePie RSS not accepting variable with comma separated strings

我正在尝试使用 SimplePies "$feed->set_feed_url (array());" 函数,但我很难理解为什么它不接受我的值。

当我手动添加 URLS 时(即直接在下面),它们工作得很好。提要正常运行并根据需要显示提要。

  $feed ->set_feed_url (array(
    'http://www.theverge.com/tag/rss',
    'http://feeds.ign.com/ign/all'
  ));

我在数据库 table 中有 URLS,我正在像往常一样使用 while 循环提取这些 URL。然后我附加一个逗号并删除尾随的逗号,这样它对 SimplePie 数组很好。像这样:

while($row = mysqli_fetch_array($pullAllAccountsDoIt)){
    $result4mdb .= $row[0] . ",";
}

$result4mdb = substr($result4mdb, 0, strlen($result4mdb) -1);
 echo "the result is: " . $result4mdb;

当我这样做并回显“$result4mdb”时,它会打印出:the result is: http://www.gamespot.com/feeds/mashup/,http://www.theverge.com/tag/rss

这意味着变量是好的并且打印出我需要的东西。到目前为止,一切都很好。 然后我进入 simplePie 代码,像这样输入我的变量:

$feed ->set_feed_url (array($result4mdb));

什么也没发生。我没有得到任何错误或任何东西,只是页面保持空白,什么也没有出现。

为了测试,我做了一个 gettype($result4mdb); 它告诉我这个变量是一个 "string" 再一次,回显时这个变量的输出是它从数据库中得到的 URLS 所以我知道到目前为止整个过程都在工作。

为了进一步测试,我转到数据库并删除其中一个 URL,以便在查询时,它是 returns 一个值,SimplePie 突然就可以工作了。

我已经搜索了一天半,尝试了不同的方法并尽可能多地进行谷歌搜索,但无济于事。我就是不太明白。

我已经无计可施了。 非常感谢任何关于为什么这不起作用的帮助。

提前谢谢大家

您只是生成一个包含逗号分隔值的字符串。你需要的是一个数组,所以 explode() 你的字符串:

变化:

$feed ->set_feed_url (array($result4mdb));

$feed ->set_feed_url (explode(',', $result4mdb));

更优雅的版本,变化:

while($row = mysqli_fetch_array($pullAllAccountsDoIt)){
    $result4mdb .= $row[0] . ",";
}

while($row = mysqli_fetch_array($pullAllAccountsDoIt)){
    $result4mdb[] = $row[0];
}

这样你就不会创建一个需要被分解的字符串,而是首先创建一个数组。