Php 正在使用zend 2源解析RSS文件,我无法获取媒体标签

Php 正在使用zend 2源解析RSS文件,我无法获取媒体标签,php,zend-framework2,Php,Zend Framework2,我似乎无法解决这个问题。我想从RSS文件中获取媒体:缩略图。使用ZF2;Zend\Frame a按照手册操作,但我无法从xml文件中获取图像,请注意:) 控制器代码: <?php namespace RSS\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; use Zend\Feed\Reader as feed; class IndexContro

我似乎无法解决这个问题。我想从RSS文件中获取媒体:缩略图。使用ZF2;Zend\Frame a按照手册操作,但我无法从xml文件中获取图像,请注意:)

控制器代码:

<?php

namespace RSS\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Feed\Reader as feed;

class IndexController extends AbstractActionController
{

    public function indexAction(){

        try{

            $rss =            feed\Reader::import('http://www.wdcdn.net/rss/presentation/library/client/skunkus/id/cc3d06c1cc3834464aef22836c55d13a');
        }catch (feed\Exception\RuntimeException $e){
            echo "error : " . $e->getMessage();
            exit;
        }

       $channel = array(
            'title'       => $rss->getTitle(),
            'description' => $rss->getDescription(),
            'link'        => $rss->getLink(),
            'items'       => array()
        );

        foreach($rss as $item){
            $channel['items'][] = array(
                'title'       => $item->getTitle(),
                'link'        => $item->getLink(),
                'description' => $item->getDescription(),
               // 'image'       => $item->getImage(),
            );
        }

        return new  ViewModel(array(
            'channel' => $channel
        ));
    }


}
你好

对于获得相同pb的用户,我通过在Zend/Feed/Reader/Entry/rss.php中添加一个名为getMedia()的新函数来解决这个问题,该函数为那些有更好想法或更好代码的用户提供代码,如果您能提供帮助,我将不胜感激:

    public function getMedia()
{
    if (array_key_exists('media', $this->data)) {
        return $this->data['media'];
    }

    $media = null;

    if ($this->getType() == Reader\Reader::TYPE_RSS_20) {
        $nodeList = $this->xpath->query($this->xpathQueryRss . '/media:thumbnail');

        if ($nodeList->length > 0) {
            $media = new \stdClass();
            $media->url    = $nodeList->item(0)->getAttribute('url');

        }
    }
    $this->data['media'] = $media;

    return $this->data['media'];
}

下面是一种无需扩展或修改类即可完成此操作的方法:

foreach ($channel as $item) {
    $xmlItem = $item->saveXml();
    $xmlFeed = new \SimpleXMLElement($xmlItem);
    $thumbAttr = $xmlFeed->children('http://search.yahoo.com/mrss/')->thumbnail->attributes();
    $thumbUrl = (string)$thumbAttr['url'];
}

现在我可以使用以下方法获得标题和描述:$channel->getTitle()和$channel->getDescription,但对于媒体,我不能这样做。我读过的手册的链接:然后:你有没有尝试过-正如你在文档链接中提到的那样-使用
getImage()
函数?是的,但它给了我这个错误消息:方法:getImage不存在,并且无法在注册的ExtensionAnks man上找到!没有时间去翻阅我只需要这张照片