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

时间:2012-05-16 09:27:16

标签: php javascript html rss

我几天来一直在研究这个话题,而且我仍然不知道如何做到这一点。

我想从forexfactory.com获取RSS源到我的网站,我想对发生的事情做一些格式化,我也想要他们的最新信息(虽然最后两点可以等到我有一些更多或饲料运行。)

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

如果不是,我会决定使用第三方API或类似的东西,只要我做一些工作。

我不确定它是什么,但有一些关于RSS的东西,如果有人知道任何好的,可能是基本的教程可以帮助我很多,我就不会这么做。谷歌搜索的页面逐页很难。

此外,我不会讨论用Javascript输出的语言,PHP或HTML会很棒。

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

看起来SimplePie可能正是您所寻找的。这是一个非常基本的RSS插件,它非常易于使用,也可以自定义。您可以从the website下载。

如果您愿意,可以在bare bones使用它,也可以delve deeper插入插件。这是他们网站上的demo

答案 1 :(得分:2)

的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;
        }
}
?>

答案 2 :(得分:0)

我没有加入&lt;表&gt;标签,因为您可能要展示多篇文章。

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