我正在使用PHP获取XML Feed并将其显示在我的网站中,Feed来自 This NewsReach Blog
我正在使用一些简单的PHP代码来获取详细信息,如下所示:
$feed = new SimpleXMLElement('http://blog.newsreach.co.uk/atom.xml', null, true);
$i = 0;
foreach($feed->entry as $entry)
{
if ($i < 4)
{
$title = mysql_real_escape_string("{$entry->title}");
$summary = mysql_real_escape_string("{$entry->content}");
$summary = strip_tags($summary);
$summary = preg_replace('/\s+?(\S+)?$/', '', substr($summary, 0, 100));
$url = mysql_real_escape_string("{$entry->link[4]['href']}");
$media = $entry->children('http://search.yahoo.com/mrss/');
$attrs = $media->thumbnail[0]->attributes();
$img = $attrs['url'];
}
}
我遇到的问题是每个博客文章中都不存在媒体缩略图标记,导致出现错误并阻止XML Grabber运行。
我厌倦了:
if ($media == 0)
{
}
else
{
$attrs = $media->thumbnail[0]->attributes();
$img = $attrs['url'];
}
或
if ($media['thumbnail'] == 0)
{
}
else
{
$attrs = $media->thumbnail[0]->attributes();
$img = $attrs['url'];
}
我没有运气,我希望有人可以帮助我检查XML项目是否存在然后根据它进行处理。
全部谢谢
答案 0 :(得分:1)
您可以检查它是否已设置且不为空:
$img = '';
if (!empty($media->thumbnail[0])) {
$attrs = $media->thumbnail[0]->attributes();
$img = $attrs['url'];
}
请记住,$ media是一个对象,您无法像数组一样访问它($media['thumbnail']
应该是$media->thumbnail
)。