2014-11-17 3 views
1

Новое на PHP и просто играло с RSS-каналами.PHP RSS Feed не отображается

Я сейчас просто пытаюсь отобразить RSS-канал отсюда: http://www.polygon.com/rss/index.xml.

Bbut Я думаю, что мой код где-то сломался и надеялся, что кто-то может пролить свет на проблему.

Это функция, я использую:

<?php 

function fetch_news(){ 
    $data = file_get_contents('http://www.polygon.com/rss/index.xml'); 
    $data = simplexml_load_string($data); 

    $articles = array(); 

    foreach ($data->channel->item as $item){ 
     $articles[] = array(
      'title'  => (string)$item->title, 
      'content' => (string)$item->content, 
      'href'  => (string)$item->href, 
      'published' => (string)$item->published, 
      ); 
    } 

    print_r($articles); 
} 

?> 

При загрузке страницы содержимое не отображая :(Все, что я получаю это:

Массив()

Любые идеи о том, что я делаю неправильно? Я предполагаю, что это имеет какое-то отношение к этому заявлению foreach.

Спасибо за любую помощь :)

ответ

1

Прежде всего, нет ->channel->item внутри $data. Это ->entry.

Во-вторых, вы можете собрать результаты в контейнере, а затем вернуть полученные значения. Затем вызовите функцию:

function fetch_news(){ 
    $articles = array(); 
    $data = simplexml_load_file('http://www.polygon.com/rss/index.xml'); 
    foreach ($data->entry as $entry){ 
     $articles[] = array(
      'title'  => (string) $entry->title, 
      'content' => (string) $entry->content, 
      'href'  => (string) $entry->href, 
      'published' => (string) $entry->published, 
     ); 
    } 

    return $articles; 
} 

$news = fetch_news(); 
echo '<pre>'; 
print_r($news); 

Sample Output

+0

Это здорово, спасибо! – StackUnderFlow

+0

@StackUnderFlow уверен, что человек рад, что это помогло – Ghost