在while循环中排序图像(没有mysqli)

时间:2016-03-06 18:56:42

标签: php sorting while-loop opendir readdir

我想从目录中的几个子文件夹中获取图片,我想将它们作为数据排序。使用以下代码,我现在得到了图像,我想将它们作为数据排序。

注意

每个图片名称都以上传示例的日期和时间开头: -

默认图片名称=" image.jpg "

上传图片名称=" 24-02-2016-09-42-33-image.jpg "

<?php
    $dir = 'dist/userdata/'.$username.'/photos/';

    if ($opendir = opendir ($dir) ) {

      $files = 0;

      while (($file = readdir ($opendir)) !== false && $files <= 2 + 1 ) {

        if ($file !="." && $file !="..") {

          $newdir = $dir.''.$file.'/';

          if ($newopendir = opendir ($newdir)) {
            $imgs = 0;
            while (($img = readdir ($newopendir)) !== false && $imgs <= 3 + 1) {
              if ($img !=="." && $img !=="..") {

                $supported_files = array(
                  'jpeg',
                    'jpg',
                    'png'
                );
                $ext = strtolower(pathinfo($img, PATHINFO_EXTENSION)); 
                if (in_array($ext, $supported_files)) {
                  echo '<img src="'.$newdir.''.$img.'"/>';
                } else {
                }
              }
              $imgs++;
            }
          }

        }
        $files++;
      }
    }
  ?>

1 个答案:

答案 0 :(得分:1)

而不是imidiatelly回显图像,将它们收集到数组中。 之后,您可以使用usort()

轻松对其进行排序

另外 - 打开后你没有关闭手柄。

并且,可能RecursiveDirectoryIterator比嵌套时更适合这种情况。