我花了很长时间寻找一种通过Magpie自己在RSS中显示图像的方法,最后我不得不检查代码以找出如何让它工作.
就像你说的那样,Magpie没有在元素中拾取图像的原因是因为它们是使用'enclosure'标签指定的,这是一个空标签,其中信息在属性中,例如
<enclosure url="http://www.mysite.com/myphoto.jpg" length="14478" type="image/jpeg" />
Run Code Online (Sandbox Code Playgroud)
作为一个让我快速为它工作的黑客,我在rss_parse.inc中添加了以下几行代码:
function feed_start_element($p, $element, &$attrs) {
...
if ( $el == 'channel' )
{
$this->inchannel = true;
}
...
// START EDIT - add this elseif condition to the if ($el=xxx) statement.
// Checks if element is enclosure tag, and if so store the attribute values
elseif ($el == 'enclosure' ) {
if ( isset($attrs['url']) ) {
$this->current_item['enclosure_url'] = $attrs['url'];
$this->current_item['enclosure_type'] = $attrs['type'];
$this->current_item['enclosure_length'] = $attrs['length'];
}
}
// END EDIT
...
}
Run Code Online (Sandbox Code Playgroud)
图像的网址在$ myRSSitem ['enclosure_url']中,大小在$ myRSSitem ['enclosure_length']中.请注意,机箱标签可以引用多种类型的介质,因此首先通过检查$ myRSSitem ['enclosure_type']来检查类型是否实际上是图像.
也许其他人有一个更好的建议,我相信这可以更优雅地从其他空标签中获取属性,但我需要快速修复(截止日期的压力),但我希望这可以帮助困难的其他人!
| 归档时间: |
|
| 查看次数: |
2632 次 |
| 最近记录: |