获取文件夹下的文件

获取指定文件夹下的文件(根据日期段和设备号)。
目录结构
获取文件夹下的文件

public function getCameraPicListByNum(){

        $dvcNum = input('param.dvcNum');
        $date = input('param.date');
        $starttime = substr($date,0,10);
        $endtime = substr($date,-10,10);
        $dateArr = $this->getDurationDate($starttime,$endtime);

        $files = array();
        $path = ROOT_PATH . 'public' . DS . 'videos';
        if($dateArr){
            foreach ($dateArr as $key => $item){
                $files[$item] = $this->getFilterFiles($path,$item,$dvcNum);
            }
            return json(['code'=>10000,'data'=>$files]);
        }else{
            return json(['code'=>10011,'responseMsg'=>'Got wrong Param , Please Check Your param']);
        }

    }

    /**
     * @param $path string 图片路径
     * @param $date string 日期 2018-10-10
     * @param $dvcNum string 设备号
     * @param int $level
     * @return array
     */
    private function getFilterFiles($path,$date,$dvcNum,$level = 1){
        $param1 = substr($date,0,4);
        $param2 = substr($date,5,2);
        $param3 = substr($date,8,2);
        $this->files = [];
        if(is_dir($path) && $handle = opendir($path)){
            while($file = readdir($handle)){
                if($file == '.' || $file == '..') continue;

                $real_path = $path . DS . $file;
                if($level == 1 && strpos($file,$param1) !== false){
                    $this->getFilterFiles($real_path,$date,$dvcNum,$level+1);
                }
                if($level == 2 && strpos($file,$param2) !== false){
                    $this->getFilterFiles($real_path,$date,$dvcNum,$level+1);
                }
                if($level == 3 && strpos($file,$param3) !== false){
                    $this->getFilterFiles($real_path,$date,$dvcNum,$level+1);
                }
                if($level == 4 && strpos($file,$dvcNum) !== false){
                    $this->getFilterFiles($real_path,$date,$dvcNum,$level+1);
                }
                if($level == 5 && is_file($real_path)){
                    $this->files[] = $param1 . DS . $param2 . DS . $param3 . DS . $dvcNum . DS . $file;
                    //dump($files);
                }
            }
        }
        return $this->files;
    }
    /**
     * @param $start string format date '2018-10-09'
     * @param $end string format date '2018-10-11'
     * @return array
     */
    private function getDurationDate($start,$end){
        $date = [];
        $dt_start = strtotime($start);
        $dt_end = strtotime($end);
        while($dt_start<=$dt_end){
            $date[] = date('Y-m-d',$dt_start);
            $dt_start = strtotime('+1 day',$dt_start);
        }
        return $date;
    }