【问题标题】:PHP -> get random two random files from two different foldersPHP -> 从两个不同的文件夹中随机获取两个随机文件
【发布时间】:2014-02-18 18:21:15
【问题描述】:

所以我想要实现的是获取两个随机图像文件,它们将是两个不同文件夹的缩略图。这两个图像将使用函数 randomThumbnail($dirs) 调用 $dirs 是一个包含两个不同文件夹位置的数组。提前致谢! 我做错了什么?是问题。

function randomThumbnail($albums_location){ #TODO: finish this function

 //$images = scandir($albums_location); old ver
 //$i = rand(2, sizeof($images)-1); old ver
$images = glob($albums_location . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);

$randomImage = $images[array_rand($images)];    
    return $randomImage;
}

抱歉不清楚..我只是为你们把代码弄清楚然后我把它全部切换到类

$y = $_GET['year'];  
$dir_photos = 'photos/'
$folders = scandir($dir_photos.$y);
foreach($folders as $albumFolder){
    if($albumFolder == '.' OR $albumFolder == '..'){
     $albumFolder = '';
    } else {
      $thumbnails = $this->randomThumbnail($dir_photos.$y.'/'.$albumFolder);
          echo '<img src="'.$thumbnails.'" />';
    }
}       

【问题讨论】:

  • 什么是 $this->dir_photos,什么是 $y,你为什么使用 $randomImage = $images[array_rand($images)]; $images 是一个数组,所以您将一个随机数组放入数组中?
  • 那么...你有什么问题?
  • 该代码看起来就是这样做的。它有什么问题?
  • 所以调用 glob 两次,每个文件夹一次。合并两个数组,然后拉出你的随机值...
  • 它根本不工作。我在 $randonImage 的行中遇到未定义的索引错误。我猜是因为答案 #1

标签: php arrays image


【解决方案1】:

glob() 函数可能没有正确列出文件,因为路径没有以斜杠结尾。

仔细检查路径。

[编辑] 检查这一行:

$thumbnails = $this->randomThumbnail($dir_photos.$y.'/'.$albumFolder);

在此行之前创建一个 var_dump 为:

var_dump($dir_photos.$y.'/'.$albumFolder);

而不是:

$thumbnails = $this->randomThumbnail($dir_photos.$y.'/'.$albumFolder);

尝试:

$thumbnails = $this->randomThumbnail($dir_photos.$y.'/'.$albumFolder.'/');

【讨论】:

  • 我想我一直都在正确的方向。只是我只是从使用 scandir() 切换,你不需要在路径末尾使用斜杠。谢谢你,我所缺少的只是路径中的一个斜线。
  • 如果这解决了您的问题,请将其标记为已解决。谢谢。
  • mm 我该怎么做。对不起,这个很棒的姐姐是新手
  • 您必须点击答案左侧的复选框符号。
猜你喜欢
  • 1970-01-01
  • 2017-05-08
  • 2011-01-20
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 2012-06-13
  • 2021-07-07
  • 1970-01-01
相关资源
最近更新 更多