Я пытаюсь использовать 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 работал.
Я искал добрых полтора дня, пробовал разные вещи и гуглил как можно больше, но безрезультатно. Я просто не могу понять это.
Я в своем уме. Любая помощь в том, почему это не работает ЗНАЧИТЕЛЬНО оценили.
Заранее всем спасибо
Вы просто создаете строку, содержащую значения, разделенные запятыми. Что вам нужно, так это массив, так что просто 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];
}
Таким образом, вы не создаете строку, которую нужно исследовать, но сначала создаете массив.
Других решений пока нет …