如何让glob返回有限数量的值?

时间:2014-06-28 12:19:24

标签: php image limit glob

我使用这个脚本从目录中获取缩略图。这里显示了glob()返回的所有图像。如何让glob返回有限数量的图像?是否可以限制glob返回的值?

<?php

$filecount = count(glob("".$usr_alb_path."/*.{jpg,jpeg,gif,png}",GLOB_BRACE));

foreach(glob("".$usr_alb_path_thumbs_path."/*.{jpg,jpeg,gif,png}",GLOB_BRACE) as $images) 
{ 
  if ($filecount > 1)
  {
     echo "<img class='uploaded_image_live_img_thumbs' alt='".$row["caption"] ."' src=\"".$images."\">";
  }
  else
  {
    //another function
  }
}

?>

2 个答案:

答案 0 :(得分:0)

$c = 0;
foreach(glob("".$usr_alb_path_thumbs_path."/*.{jpg,jpeg,gif,png}",GLOB_BRACE) as $images) {
   if($c++ > 5) break ;
   ...
}

$truncated = array_slice(glob("".$usr_alb_path_thumbs_path."/*.{jpg,jpeg,gif,png}",GLOB_BRACE), 0, 5);
foreach($truncated as $images) {
   ...

如果目录中的文件太多而您希望获得限制结果,则可以使用opendir() readdir()或更优雅的方式 - DirectoryIterator class

答案 1 :(得分:0)

glob()返回一个数组时,您只需通过array_slice()提取部分结果。

如果你的目录有太多的文件/你想以某种方式过滤它们,你必须重新设计你的持久层[并且因为你是echo这样的html,我建议重新设计你的整个应用程序]。 / p>