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

Php 如何显示来自其他站点的RSS源,php,javascript,html,rss,Php,Javascript,Html,Rss,我已经研究这个话题好几天了,但我还是不知道该怎么做 我想从forexfactory.com获得一个RSS源到我的网站,我想对正在发生的事情进行一些格式化,我还想从他们那里获得最新的信息(尽管最后两点可以等待,只要我有更多的RSS源或正在运行的RSS源) 如果有人知道教程或我可以使用的东西,我最好从头开始开发这个 如果没有,我会满足于使用第三方API或类似的东西,只要我开始做一些工作 我不确定它是什么,但我不知道RSS有什么东西,所以如果有人知道任何好的,可能是基本的教程,会对我有很大帮助。浏览一

我已经研究这个话题好几天了,但我还是不知道该怎么做

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

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

如果没有,我会满足于使用第三方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;
        }
}
?>
feed);
//印刷(rss);模具;///检查这里的属性
$rss_split=array();
foreach($rss->channel->item as$item){
$title=(字符串)$item->title;
$link=(字符串)$item->link;
$pubDate=(字符串)$item->pubDate;
$description=(字符串)$item->description;
$image=$rss->channel->item->enclosure->attributes();
$image_url=$image['url'];
$rss_split[]='
  • “.$pubDate。” “.$description。”

  • '; } 返回$rss_split; } 功能显示($numrows,$head){ $rss_split=$this->parse(); $i=0; $rss_data=''.$head.'
      ; 而($ifeed); $user=str_replace('&lang=en-us&format=rss_200',''$trim); $rss_data.='
    '; 返回$rss_数据; } } ?>
    我没有加入标记,因为您可能想显示多篇文章

    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");
            }
          }
        }
    }
    
    类RssFeed
    {
    公众$rss=“”;
    公共功能构造($article)
    {
    $this->rss=simplexml\u load\u文件($article,'simplexmlement',LIBXML\u NOERROR | LIBXML\u NOWARNING);
    如果($this->rss!=false)
    {
    printf(“\r\n”);
    printf(“\r\n”);
    printf(“%s\r\n”,$this->rss->channel->title);
    printf(“\r\n”);
    foreach($this->rss->channel->item as$value)
    {
    printf(“\r\n”);
    printf(“\r\n”);
    printf(“
    \r\n”,$value->link,$value->title); printf($value->description); printf(“\r\n”); } } } }
    可能是一个重复的问题。已经有不少人问过了。也许这个能帮你?也许不是你想要的,但特别是SimplePie插件非常棒。我在写这篇文章的时候没有遇到这个问题。我在看Simlepie,平心而论,我想这可能就是我要找的@连系一号!我为你补充了一个答案。祝你好运。效果惊人!谢谢你,老兄!