Цикл RSS для импорта изображений неожиданно обрывается - PullRequest
1 голос
/ 29 февраля 2012

Я использую этот код для импорта изображений из новостной ленты rss.

$source_xml = simplexml_load_file("http://feeds.bbci.co.uk/news/uk/rss.xml");
foreach ($source_xml->channel->item as $rss) {
    $namespace      = "http://search.yahoo.com/mrss/";
    $images         = $rss->children($namespace)->thumbnail[1]->attributes();
    $image          = $images['url'];
    echo $image; echo "<br />";
}

Код, похоже, работает, однако в какой-то момент цикла он просто останавливается! Цикл никогда не проходит через весь RSS-канал. Я пытался выяснить, почему это останавливается, но я просто, кажется, никуда не денусь. Есть идеи?

1 Ответ

1 голос
/ 29 февраля 2012

Я получил ошибку:

Fatal error: Call to a member function attributes() on a non-object in ...

$rss->children($namespace)->thumbnail[1]->attributes() пуст для некоторой строки, и вы получили фатальную ошибку.

Попробуйте это:

$source_xml = simplexml_load_file("http://feeds.bbci.co.uk/news/uk/rss.xml");
foreach ($source_xml->channel->item as $rss) {
    $namespace      = "http://search.yahoo.com/mrss/";
    if(!is_object($rss->children($namespace)->thumbnail[1]))continue;
    $images         = $rss->children($namespace)->thumbnail[1]->attributes();
    $image          = $images['url'];
    echo $image; echo "<br />";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...