0

从 index.php 页面呈现 RSS 提要并没有那么糟糕,我已经看到了很多这样的例子。但是我在上课时遇到问题。这就是我所拥有的,我确信我有很多错误...... PHP不是我的强项,所以如果你能让我知道我哪里出错了,我会感激它......

<?php
class RssDisplay {

protected $fromrss;
protected $allitemscollected_feed;


public function __construct($urllink, $total_items){

    $this->fromrss = $urllink;
    $this->allitemscollected_feed = $total_items;

}

public function getItems($allitemscollected_feed){

    $feed = simplexml_load_file($this->fromrss, $this->allitemscollected_feed);

    return $feed;

    $collected_items[] =$feed;

    $this->set('collected_items', $collected_items);

}

foreach('allitemscollected' as $feed){
    $items->title;
    $items->pubDate;
    $items->description;


}


 } 

从我的索引来看,这就是我正在做的事情:

 $feed = new RssDisplay('http://feeds.feedburner.com/insidethehall?format=xml');
4

2 回答 2

0

您的构造需要两个参数,但您将它与单个参数一起使用。

于 2012-11-03T20:51:21.420 回答
0

对于初学者,我建议您看一下ForeachPHP OPP 基础知识,因为

  • foreach没有任何方法
  • foreach('allitemscollected' as $feed){无效,因为foreach第一个参数必须是array_expression
  • 你的课错了
  • 您没有打印或回显任何内容
  • return $feed;被提前调用,这将使其他代码不可见
  • $this->set(那些不存在但被调用的方法$this->set('collected_items', $collected_items);
  • simplexml_load_file第二个参数需要是一个有效的扩展类名,SimpleXMLElement但传递了一个整数

你的简单类你看起来像这样

class RssDisplay {
    protected $maxItems;
    private $xml;

    public function __construct($url, $maxItems = 0) {
        $this->xml = simplexml_load_file($url, "SimpleXMLIterator");
        $this->maxItems = $maxItems;
    }

    public function getItems() {
        return $this->xml->channel->item;
    }

    public function simpleDisplay() {
        $it = ($this->maxItems == 0) ? $this->xml->channel->item : new LimitIterator($this->xml->channel->item, 0, $this->maxItems);
        foreach ( $this->xml->channel->item as $feed ) {
            printf("<div><h2><a href='%s'>%s</a></h2><i>%s</i><p>%s</p></div><br />", $feed->link, $feed->title, $feed->pubDate, $feed->description);
        }
    }
}


$rss = new RssDisplay("http://feeds.feedburner.com/insidethehall?format=xml");
$rss->simpleDisplay();

输出

格兰特兰预览印第安人队

2012 年 11 月 2 日星期五 19:22:21 +0000

格兰特兰:大学篮球队前瞻:印第安纳 印第安纳州不乏进攻火力,而汤姆克林的伟大之处在于他从不害怕使用它。印第安纳上个赛季的节奏处于全国前半部分,再加上一年的化学反应,这是一个不错的选择 [...]


笔记本:克里克从伤病中得到回报

2012 年 11 月 2 日星期五 02:57:32 +0000

在周四晚上对阵印第安纳卫斯理的表演赛上半场比赛还剩 11 分钟时,莫里斯克里克替补出场,走向大会堂的记分台。克里克向官方记分员报到,然后耐心地等待着他 20 多个月以来一直在思考的那一刻 — [...]

  ....... So may more
于 2012-11-03T22:29:12.447 回答