2015-03-21 2 views
0

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

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

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

У меня есть URLS в таблице базы данных, которую я вытягиваю, как обычно, с циклом 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, положить в моем varialble так:

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

и ничего не происходит. Я не получаю никаких ошибок или чего-то еще, только эта страница остается пустой и ничего не появляется.

Для тестирования я делаю gettype($result4mdb);, и он сообщает мне, что переменная является «строкой», и снова выход этой переменной при повторном отображении является URL-адресом, полученным из базы данных, поэтому я ЗНАЮ, что весь процесс до сих пор работает.

Для дальнейшего тестирования я перехожу к базе данных и удаляю один из URLS, чтобы при запросе, что он возвращает одно значение, и все внезапные SimplePie работают.

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

Я нахожусь в своем уме. Любая помощь относительно того, почему это не работает, - БОЛЬШОЕ оценено.

Спасибо заранее всем

ответ

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]; 
} 

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

+1

Ohhhhh я вижу, что вы сделали !!!!! умная! лол. Человек, клянусь. Я думал, что, поскольку simplePie уже сказал «массив (мой оригинальный var здесь)», то, поскольку мой var уже имел строки, он работал. Все, что я пытался передать в массив, это мои строковые значения. Ты только......Я ПОЛУЧИЛ ЭТО !!! спасибо человеку, которого я ценю! Оно работает! – somdow

+0

Glad Я мог бы помочь –

+0

Примечание: проще/более элегантным способом было бы изменить цикл while, чтобы не создавать строку, но массив –

 Смежные вопросы

  • Нет связанных вопросов^_^