【问题标题】:PHP Random Images, not repeatingPHP随机图像,不重复
【发布时间】:2017-11-12 14:40:13
【问题描述】:

看看这个网址:
http://www.portaloficial.com.br/teste/teste1/demo.php
我需要这些图像是随机的,而不是重复的,每张专辑。
有人可以帮我吗?
..................................................... .....................

代码如下:

if (!isset($_GET['album'])) {
    // display list of albums
    $folders = scandir($mainFolder, 0);
    $ignore  = array('.', '..', 'thumbs');
    $albums = array();
    $captions = array();
    $random_pics = array();
    foreach($folders as $album) {
        if(!in_array($album, $ignore)) {
            array_push( $albums, $album );
            $caption = substr($album,0,40);
            array_push( $captions, $caption );
            $rand_dirs = glob($mainFolder.'/'.$album.'/thumbs/*.*', GLOB_NOSORT);
            $rand_pic = $rand_dirs[array_rand($rand_dirs)];
            array_push( $random_pics, $rand_pic );
        }
    }
    if( count($albums) == 0 ) {
        echo 'Não há álbuns.';
    } else {
        $numPages = ceil( count($albums) / $albumsPerPage );
        if(isset($_GET['p'])) {
            $currentPage = $_GET['p'];
            if($currentPage > $numPages) {
                $currentPage = $numPages;
            }
        } else {
            $currentPage=1;
        }
        $start = ( $currentPage * $albumsPerPage ) - $albumsPerPage;
        for( $i=$start; $i<$start + $albumsPerPage; $i++ ) {
            if( isset($albums[$i]) ) {
                echo '<div class="thumb-album shadow" style="width:100%; text-align:center;">
                        <div class="thumb-wrapper">
                            <a href="'.$_SERVER['PHP_SELF'].'?album='. urlencode($albums[$i]) .'" style="padding:5px;">
                                <img src="'. $random_pics[$i] .'" width="'.$thumb_width.'" alt="" />
                                <img src="'. $random_pics[$i] .'" width="'.$thumb_width.'" alt="" />
                                <img src="'. $random_pics[$i] .'" width="'.$thumb_width.'" alt="" />
                                <img src="'. $random_pics[$i] .'" width="'.$thumb_width.'" alt="" />
                                <img src="'. $random_pics[$i] .'" width="'.$thumb_width.'" alt="" />
                                <img src="'. $random_pics[$i] .'" width="'.$thumb_width.'" alt="" />
                            </a>
                        </div>
                        <a href="'.$_SERVER['PHP_SELF'].'?album='. urlencode($albums[$i]) .'">
                            <span>'. $captions[$i] .'</span>
                        </a>
                    </div>
                    <div class="clear"></div>';
            }
        }
        echo '<div class="clear"></div>';
        echo '<div align="center" class="paginate-wrapper">';
            $urlVars = "";
            print_pagination($numPages,$urlVars,$currentPage);
        echo '</div>';
    }

【问题讨论】:

    标签: javascript php arrays image random


    【解决方案1】:

    改变: &lt;img src="'. $random_pics[$i] .'" width="'.$thumb_width.'" alt="" /&gt;

    &lt;img src="'. $random_pics[mt_rand(0, count($random_pics) - 1)] .'" width="'.$thumb_width.'" alt="" /&gt;

    虽然你很有可能在显示时被欺骗,但如果你不想这样,那么为图像集构建一个特定的数组。

    【讨论】:

    • @laurence-cherone 这混合了专辑之间的所有图像...看看网址...我需要它们只是按专辑随机的
    • 我没有测试它,我假设$rand_pic = $rand_dirs[array_rand($rand_dirs)]; 包含相册中的图像数组.. 基本上每个相册都有一个路径数组,然后你只需选择一个随机的您要显示的每张图片。
    • 抱歉,我对 PHP 了解的不够多……我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2020-09-25
    相关资源
    最近更新 更多