我在这里已经找到了这个问题的答案,但我似乎无法找到与这个特定问题相关的任何内容。
我目前正在使用simpleXML来解析RSS提要,以便通过遍历节点来解析缩略图,以解析" media:thumbnail"。我已设法执行此操作并返回所有缩略图URL,因此我知道我正在获取正确的内容,如下所示:
<?php
$url = "http://feeds.bbci.co.uk/news/rss.xml?edition=uk";
$xml = simplexml_load_file($url);
foreach($xml->channel->item as $item) {
$media = $item->children('media', 'http://search.yahoo.com/mrss/');
foreach($media->thumbnail as $thumb) {
echo $thumb->attributes()->url;
}
}
?>
这回复了所有图片网址。但是当我将它存储到变量并尝试稍后以img src回显时,它只返回一个图像,而不是全部:
<?php
$url = "http://feeds.bbci.co.uk/news/rss.xml?edition=uk";
$xml = simplexml_load_file($url);
foreach($xml->channel->item as $item) {
$media = $item->children('media', 'http://search.yahoo.com/mrss/');
foreach($media->thumbnail as $thumb) {
$image = $thumb->attributes()->url;
}
}
?>
<div><img src = <?php echo $image; ?> /></div>
如何回显单个图像中的所有网址?谢谢你的期待。
答案 0 :(得分:2)
由于您正在获得并期待多个图像网址,因此也可以将它们存储在数组中:
$images_container = array();
foreach($xml->channel->item as $item) {
$media = $item->children('media', 'http://search.yahoo.com/mrss/');
foreach($media->thumbnail as $thumb) {
$image = $thumb->attributes()->url;
$images_container[] = (string) $image;
}
}
echo '<pre>', print_r($images_container, 1), '<pre>';
现在当然,如果你想处理那些字符串图像网址数组,那么只需使用和处理容器:
<?php foreach($images_container as $url): ?>
<div><img src="<?php echo $url; ?>" alt="" /></div>
<?php endforeach; ?>
答案 1 :(得分:1)
尝试xpath
。
$url = "http://feeds.bbci.co.uk/news/rss.xml?edition=uk";
$xml = simplexml_load_file($url);
$xml->registerXPathNamespace( 'media', 'http://search.yahoo.com/mrss/' );
// get only thumbnails of specified width
$xpath = $xml->xpath( '//media:thumbnail[@url and @width=144]' );
/**
* The above xpath will get only thumbnails of width 144
*/
foreach( $xpath as $node ) {
echo '<div><img src="' . $node['url'] . '" /></div>';
}
希望有所帮助。