PHP遍历目录

PHP遍历目录 PHP遍历

文章中的图片上需要加个水印,由于涉及过往的图片,所以需要批量加水印,这时候需要遍历目录,查看每个目录下有哪些图片,所以写了一个方法去遍历,控制器中这样写的:

 /*

     * @function   waterImg

     * @intro      遍历文件夹中的图片

     */

public function waterImg(){

        $list = getDirFileList(ROOT_PATH . 'uploads');

        if(count($list) > 0){

            foreach($list as $r){

              if(is_array($r) > 0){

                foreach($r as $t){

                  waterImg($t);//加水印的方法

                }

              }

            }

         }

}


全局方法中,这样写的:

/**

 * 遍历目录

 * @param $path

 * @return array 目录名称

*/

function getDirFileList($dir){

    $dir                = DS == '/' ? str_replace('\\', DS, $dir) :  str_replace('/', DS, $dir);//这行是因为本地和服务器环境不一致,所以需要转换一下斜杠(“/”或“\”)

    $fileList           = [];

    $files              = scandir($dir);

    foreach ($files as $file) {

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

            $path       = $dir.DS.$file;

            if (is_dir($path) && $file != "." && $file != ".." && $file != 'favicon') {

                $fileList[] = getDirFileList($path);

            } else if ($file != "." && $file != ".." && $file != 'favicon') {

                $fileList[] = $path;

            }

        }

    }

    return $fileList;

}

这个方法返回的是二维数组,直接遍历即可。

42/f495815b808645a65cc8dd98aa71c6.png



网站公告

承接各种网站、小程序、H5、公众号、CMS、CRM、OA等系统开发、维护、托管、外包等服务! 邮箱: 3163316368@qq.com