2012-06-09 45 views
-1

我想从里面包含了一些图像的文件夹中选择4个随机图像随机选择不同的图像。从文件夹中的PHP

什么我想显示是一个表(2×2)其中,i可以显示4个随机不同的图像。

谁能告诉我怎样才能从一个文件夹中选择随机不同文件,这样我可以存储在一个可变的路径,然后可以使用这些变量在表中随机显示的图像!

有哪些可以选择一个文件夹或类似的东西随机文件的任何特殊功能?

回答

0
  1. 使用glob()从目录中获取所有文件。
  2. 使用array_rand()从数组中获得随机的条目。
+0

你能否给我一个小例子? @bsdnoobz –

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%>'; 
?> 
+0

_Why_这是正确的答案?它看起来像很多代码......你能解释一下是怎么回事? – Ben