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

时间:2015-03-21 04:32:42

标签: php simplepie

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

当我手动添加URLS(即直接在下面)时,它们工作得很好。 Feed会通过ok并根据需要显示Feed。

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

我在数据库表中有URL,我正在使用while循环正常拉出。然后我附加一个逗号并删除尾随的逗号,以便它对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);,它告诉我变量是一个“字符串”,而且,当回显时,这个变量的输出是它从数据库中获得的URL,所以我知道整个到目前为止的过程正在发挥作用。

为了进一步测试,我转到数据库并删除其中一个URL,以便在查询时返回一个值,并且所有突然的SimplePie都可以工作。

我一直在寻找美好的一天半,尽可能地尝试不同的东西和谷歌搜索,但无济于事。我只是不能得到它。

我的智慧结束了。任何帮助,为什么这不起作用是非常赞赏。

提前感谢大家

1 个答案:

答案 0 :(得分:1)

您只是生成一个包含逗号分隔值的字符串。你需要的是一个数组,所以只需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];
}

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