Как отображать RSS-каналы с других сайтов

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

Я хочу получить RSS-канал от forexfactory.com на моем веб-сайте, я хочу сделать какое-то форматирование на том, что происходит, и я также хочу получить последнюю информацию от них (хотя эти последние два момента могут подождать, пока у меня есть еще что-нибудь или фид Бег).

Предпочтительно, я хотел бы развивать это с нуля, если кто-нибудь знает учебник или что-то, что я могу использовать?

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

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

Также я не буду суетиться на языке, который он выводит в Javascript, PHP или HTML будет здорово.

Спасибо за помощь.

Похоже, что SimplePie может быть тем, что вы ищете. Это очень простой RSS-плагин, который довольно прост в использовании и настраивается тоже. Вы можете скачать его с веб-сайта .

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

index.php

include('rss_class.php'); $feedlist = new rss($feed_url); echo $feedlist->display(2,"Feed Title"); 

rss_class.php

 <?php class rss { var $feed; function rss($feed){ $this->feed = $feed; } function parse(){ $rss = simplexml_load_file($this->feed); //print_r($rss);die; /// Check here for attributes $rss_split = array(); foreach ($rss->channel->item as $item) { $title = (string) $item->title; $link = (string) $item->link; $pubDate = (string) $item->pubDate; $description = (string) $item->description; $image = $rss->channel->item->enclosure->attributes(); $image_url = $image['url']; $rss_split[] = ' <li> <h5><a href="'.$link.'">'.$title.'</a></h5> <span class="dateWrap">'.$pubDate.'</span> <p>'.$description.'</p> <a href="'.$link.'">Read Full Story</a> </li> '; } return $rss_split; } function display($numrows,$head){ $rss_split = $this->parse(); $i = 0; $rss_data = '<h2>'.$head.'</h2><ul class="newsBlock">'; while($i<$numrows){ $rss_data .= $rss_split[$i]; $i++; } $trim = str_replace('', '',$this->feed); $user = str_replace('&lang=en-us&format=rss_200','',$trim); $rss_data.='</ul>'; return $rss_data; } } ?> в <?php class rss { var $feed; function rss($feed){ $this->feed = $feed; } function parse(){ $rss = simplexml_load_file($this->feed); //print_r($rss);die; /// Check here for attributes $rss_split = array(); foreach ($rss->channel->item as $item) { $title = (string) $item->title; $link = (string) $item->link; $pubDate = (string) $item->pubDate; $description = (string) $item->description; $image = $rss->channel->item->enclosure->attributes(); $image_url = $image['url']; $rss_split[] = ' <li> <h5><a href="'.$link.'">'.$title.'</a></h5> <span class="dateWrap">'.$pubDate.'</span> <p>'.$description.'</p> <a href="'.$link.'">Read Full Story</a> </li> '; } return $rss_split; } function display($numrows,$head){ $rss_split = $this->parse(); $i = 0; $rss_data = '<h2>'.$head.'</h2><ul class="newsBlock">'; while($i<$numrows){ $rss_data .= $rss_split[$i]; $i++; } $trim = str_replace('', '',$this->feed); $user = str_replace('&lang=en-us&format=rss_200','',$trim); $rss_data.='</ul>'; return $rss_data; } } ?> 

Я не использовал теги <TABLE>, так как может быть более одной статьи, которую вы хотите отобразить.

 class RssFeed { public $rss = ""; public function __construct($article) { $this->rss = simplexml_load_file($article, 'SimpleXMLElement', LIBXML_NOERROR | LIBXML_NOWARNING); if($this->rss != false) { printf("<TR>\r\n"); printf("<TD>\r\n"); printf("<h3>%s</h3>\r\n", $this->rss->channel->title); printf("</TD></TR>\r\n"); foreach($this->rss->channel->item as $value) { printf("<TR>\r\n"); printf("<TD id=\"feedmiddletd\">\r\n"); printf("<A target=\"_blank\" HREF=\"%s\">%s</A><BR/>\r\n", $value->link, $value->title); printf($value->description); printf("</TD></TR>\r\n"); } } } }