如何使用php从序列中的目录加载图像?

时间:2013-04-06 18:40:25

标签: php image loading

我有这个很好的PHP代码,但唯一的事情是从文件夹加载的图像是随机的,我需要它们按顺序加载数字。

`

//Open images directory
$dir = opendir("../blogimg/luda_jesus");


//List files in images directoryb
while (($file = readdir($dir)) !== false)
  {
      if(substr( $file, -3 ) == "jpg" )

      {
        echo "<div class='container'><img class='lazy' id='background'  src='../blogimg/loader.gif' data-original='../blogimg/luda_jesus/" . $file . "' width='884' height='587'></div>";

        //echo "<br />";

      }
  }

closedir($dir);

?>` 

请帮帮我

2 个答案:

答案 0 :(得分:1)

您可以使用glob更轻松地完成此操作:

$files = glob("../blogimg/luda_jesus/*.jpg");
natsort($files); // can also use other sort functions here, take your pick
foreach ($files as $file) {
    echo '...';
}

我选择natsort作为上面的排序函数,因为它会在2.jpg之前对10.jpg进行排序,而普通sort则会相反。有关详细信息,请参阅comparison of array sorting functions

答案 1 :(得分:0)

假设“数字”表示文件名,您可以简单地执行循环并填充数组中的所有文件,对其进行排序,然后加载文件。

示例:

//Open images directory
$dir = opendir("../blogimg/luda_jesus");

//List files in images directoryb
while (($file = readdir($dir)) !== false) {
   if(substr( $file, -3 ) == "jpg" ) { 
     $filelist[] = $file;
   }
}

closedir($dir);
sort($filelist);

for($i=0; $i<count($filelist)-1; $i++) {
  echo "<div class='container'>
    <img class='lazy' id='background'  
      src='../blogimg/loader.gif' 
      data-original='../blogimg/luda_jesus/" . $file . "' 
      width='884' height='587'>
   </div>";
}

如果您需要不同的分类方法,请提及。