我正在尝试从我博客的RSS中获取最近的帖子并通过php打印它们,我所做的一切都运行良好,但我无法从XML文件中获取图像缩略图。它存储在属性中。
我的xml输出是:
<item><title>Stackoverflow inspired movies list</title><link>http://www.example.com/2015/03/movies-list.html</link><author>(Ididntknewit)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://the.url.com/image.png' height='72' width='72'/><thr:total>0</thr:total></item>
我的PHP代码:
<?php
header('Content-Type: text/html');
$rss =simplexml_load_file($requestURL);
?>
<?php
echo '<ul>';
foreach($rss->channel->item as $post){
echo '<li>';
$max = $post->media:thumbnail['url'];
echo $max;
echo '<a href="'.$post->link.'">'.$post->title.'</a>';
echo '</li>';
}
echo '</ul>';
?>
如何获取缩略图网址。
答案 0 :(得分:0)
您的主要问题是SimpleXML无法解析媒体:缩略图。我为您写了一个快速的解决方案,但我非常确定有一种更有效的方法:
header('Content-Type: text/html');
$rss = simplexml_load_string(
// replace media:thumbnail with mediathumbnail
str_replace(
'media:thumbnail',
'mediathumbnail',
file_get_contents($requestURL)
)
);
echo '<ul>';
foreach($rss->channel->item as $post)
{
echo '<li>';
// getting mediathumbnail attributes
$attributes = $post->mediathumbnail->attributes();
// this is the thumbnail url
$max = $attributes->url;
echo $max;
echo '<a href="'.$post->link.'">'.$post->title.'</a>';
echo '</li>';
}
echo '</ul>';
希望我能帮到你。 :)