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

<?php
libxml_use_internal_errors(true);

 $rss = simplexml_load_file("http://static.feed.rbc.ru/rbc/logical/footer/news.rss");
//var_dump($rss);
  foreach($rss->channel->item as $item) {

   $title=$item->title;
   echo "TITLE =  ".$title."<br>";
  }

?>

пишет Warning: Invalid argument supplied for foreach() in C:\OpenServer\domains\localhost\work.php on line 8

короч он не может взять страницу это функцией simplexml_load_file("http://static.feed.rbc.ru/rbc/logical/footer/news.rss"); там пусто helllp me!!!


Ответы (1 шт):

Автор решения: ZerxaFun aKa Zerxa

Проблема заключается в том, что указанный сайт возвращает неверный формат RSS.

Содержимое RSS ленты представлено в виде XML документа, соответственно и тип данного документа должен быть Content-type: text/xml, на указанном же сайте Content-type указан как document, что совершенно не верно.

Из-за того, что указан неверный формат, не указано, что это XML ваш PHP скрипт попросту не может получить доступ к элементам на странице, из-за этого переменная $rss пуста и вам выводиться пустой результат.

Как вариант можно распарить страницу с помощью сURL, но в данной ситуации это будет костылем, так как указанный сайт предоставляет данные в неверном формате.

→ Ссылка