多个随机图像

时间:2011-11-13 04:56:26

标签: php

我正在使用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(' & ', ' &amp; ', $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 } ?>

2 个答案:

答案 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(' & ', ' &amp; ', $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(' & ', ' &amp; ', $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 } ?>