-1

我想从包含许多图像的文件夹中选择四个随机图像。

我要显示的是一个表格(2x2),我可以在其中显示 4 个随机不同的图像。

有人可以告诉我如何从文件夹中选择随机不同的文件,以便我可以将它们的路径存储在变量中,然后可以使用这些变量在表格中随机显示图像!

是否有任何特定功能可以从文件夹或类似的东西中选择随机文件?

4

2 回答 2

0
  1. 用于glob()从目录中获取所有文件。
  2. 用于array_rand()从数组中获取随机条目。
于 2012-06-09T16:53:47.543 回答
0
<?php




    function get_imagess($root) {

    $r = array();
    $r = array();
    $k = glob("$root/*");
    shuffle($k);
    foreach($k as $n) {
        if (is_dir($n)) {
            break;
            //$r = array_merge($r, get_imagesss($n));
            print_r("xxx");
        } else {
           $r[] = $n;
           //print_r($n + "yeah");     
        }
    }
    return $r;
}

    function get_images($root) {

    $r = array();
    $k = glob("$root/*");
    shuffle($k);
    $n = $k[0];
//    foreach($k as $n) {
        if (is_dir($n)) {
            $r = array_merge($r, get_imagess($n));
        } else {
           $r[] = $n;
        }
//    }

    return $r;
}


$files = get_images('.');
//print_r($files);
//break;





shuffle($files);
$true=true;
    $extList = array();
    $extList['gif'] = 'image/gif';
    $extList['jpg'] = 'image/jpeg';
    $extList['jpeg'] = 'image/jpeg';
    $extList['png'] = 'image/png';
        $ass=0;
while($true)
    {
        $ass=$ass+1;
        if($ass>100){$true=false;}
        $imageInfo = pathinfo($files[0]);
        if (isset( $extList[ strtolower( $imageInfo['extension'] ) ] )){

    $temp = substr($files[0], -5);  
    $temp = strtolower($temp);
    if( $temp == "p.jpg"){shuffle($files);}  // checking if jpg has a preview file
    else{  // no preview found
    $true=false;
    //print_r($temp);
    }}
    else
        {
        shuffle($files);
        //print_r('bad' + $temp);
        }
}

//print_r($files[0]);
echo '<HTML><meta HTTP-EQUIV="Refresh" CONTENT="5; URL=./ImageRotateMaybe.php"><img src="';
echo $files[0];
echo ' " width=100%>';
?>
于 2012-12-23T15:00:37.193 回答