0

我有这个很好用的 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);

?>` 

请帮我

4

2 回答 2

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的会做相反的事情。有关更多信息,请参阅数组排序函数的比较。

于 2013-04-06T18:46:00.843 回答
0

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

例子:

//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>";
}

如果您需要不同的排序方式,请注明。

于 2013-04-06T18:46:14.747 回答