SimplePie RSS не принимает переменную с разделенными запятыми строками

Я пытаюсь использовать SimplePies "$feed->set_feed_url (array());" но мне трудно понять, почему он не принимает мои ценности.

Когда я добавляю URL-адреса вручную (т.е. непосредственно ниже), они работают просто отлично. Каналы проходят нормально и отображают каналы по мере необходимости.

  $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 работал.

Я искал добрых полтора дня, пробовал разные вещи и гуглил как можно больше, но безрезультатно. Я просто не могу понять это.

Я в своем уме. Любая помощь в том, почему это не работает ЗНАЧИТЕЛЬНО оценили.

Заранее всем спасибо

0

Решение

Вы просто создаете строку, содержащую значения, разделенные запятыми. Что вам нужно, так это массив, так что просто 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];
}

Таким образом, вы не создаете строку, которую нужно исследовать, но сначала создаете массив.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]