複数のランダム画像

私は DOMDocument
を使ってRSSフィードを呼び出しています。すべてが素晴らしいようですが、私は自分のアイテムにランダムな画像のセットリストを使用したいです。

問題は、 foreach の引数にある必要があるということです。これはどうすればいいですか?

私のサイトはこちらです。

コード:

<?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">
        
            <div id="item"></div>
                <div class="date">Modern Warfare 3</div>
                <div class="desc"><?php echo $date ?>
<?php echo $title ?></div>
</div> <?php } ?>
ベストアンサー

1つの方法は、最初に画像の配列を持っていて、まずそれをパスでランダム化することです。あなたがフォルダ内のすべてのファイルをループするのをやめたくない場合は、最も簡単な方法です。

これは単なる例であり、ベストプラクティスではない可能性があります。

$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">
    
        <div id="item"></div>
            <div class="date">Modern Warfare 3</div>
            <div class="desc"><?php echo $date ?>
<?php echo $title ?>

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です