2011-11-13 75 views
0

我使用DOMDocument调用RSS源。一切看起来不错,但我想要为我的项目使用一组随机图像。多个随机图像

问题是,它需要在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 } ?> 
+0

要读取或写入rss DOM吗?还提供了一些代码 – Dimme

+0

不,我可以给你正在进行的工作的URL。我将在另一条评论中发布代码。 –

+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="" /> 

+0

我正在考虑定义一个新的变量和随机播放,唯一的问题是我不希望他们重复。但是,我想他们不应该因为我正在洗牌。我会试一试并发布我的结果。 –

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 } ?>