如何显示来自其他网站的 RSS 源


How to display RSS feeds from other sites

我已经研究这个话题几天了,对于如何做到这一点,我仍然不明智。

我想从 forexfactory.com 获取RSS提要到我的网站,我想对发生的事情进行一些格式化,我也想从他们那里获得最新信息(尽管最后两点可以等待,只要我有更多的或提要运行(。

如果有人知道我可以使用的教程或东西,最好我想从头开始开发它?

如果没有,只要我能做一些工作,我就会满足于使用第三方 API 或类似的东西。

不确定它是什么,但是关于RSS的一些东西我没有得到,所以如果有人知道任何好的,可能是基本的教程,会对我有很大帮助。一页又一页的谷歌搜索有点困难。

此外,我不会大惊小怪它在Javascript中输出的语言,PHP或HTML会很棒。

感谢您的帮助。

看起来SimplePie可能是你正在寻找的。这是一个非常基本的RSS插件,非常易于使用并且也是可定制的。您可以从网站下载。

您可以直接使用它,或者如果您愿意,可以更深入地研究该插件。这是他们网站上的一个演示。

索引.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;
        }
}
?>

我没有将<表合并>标签,因为您可能要显示多篇文章。

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");
        }
      }
    }
}