我正在使用DOMDocument
来调用RSS Feed。一切看起来都很棒,但我想为我的项目使用一组随机图像。
问题是,它需要在foreach
参数中。我该怎么做?
我的网站是here。
代码:
<?php
$rss = new DOMDocument();
$rss->load('http://www.rssmix.com/u/2759612/rss.xml');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 40;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$date = date('l F d, Y', strtotime($feed[$x]['date'])); ?>
<div id="post" class="box">
<a href="<?php echo $link ?>">
<div id="item"></div>
<div class="date">Modern Warfare 3</div>
<div class="desc"><span class="green"><?php echo $date ?></span><br /><?php echo $title ?></div>
</a>
</div>
<?php } ?>
答案 0 :(得分:0)
一种方法是你可以先得到一组图像,然后先用路径随机化它。如果您不想深入循环文件夹等中的所有文件,这是最简单的方法。
这只是一个例子,可能不是最佳做法。
$images = array("yourfolder/image.jpg","yourfolder/image2.jpg");
shuffle($images);
然后修改您的项目以包含图片。
$i = 0;
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
'image' => $images[$i];
);
array_push($feed, $item);
$i++;
}
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$date = date('l F d, Y', strtotime($feed[$x]['date'])); ?>
$image = $feed[$x]['image'];
<div id="post" class="box">
<a href="<?php echo $link ?>">
<div id="item"></div>
<div class="date">Modern Warfare 3</div>
<div class="desc"><span class="green"><?php echo $date ?></span><br /><?php echo $title ?>
<img src="<?php echo $image ?>" alt="" />
答案 1 :(得分:0)
最终代码。
<?php
$images = array("img/no_img.png","img/img_1.png","img/img_2.png","img/img_3.png");
shuffle($images);
$rss = new DOMDocument();
$rss->load('http://www.rssmix.com/u/2759612/rss.xml');
$feed = array();
$i = 0;
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
'image' => $images[$i],
);
array_push($feed, $item);
$i++;
}
$limit = 40;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$image = $feed[$x]['image'];
$date = date('l F d, Y', strtotime($feed[$x]['date'])); ?>
<div id="post" class="box">
<a href="<?php echo $link ?>">
<div id="item"></div>
<img src="<?php echo $image ?>" alt="" />
<div class="date">Modern Warfare 3</div>
<div class="desc"><span class="green"><?php echo $date ?></span><br /><?php echo $title ?></div>
</a>
</div>
<?php } ?>