php获取目录下的文件名(php显示文件目录及路径)

直接上代码,复制即用

    protected $paths=[];    /**     * @description: 获取文件路径     * @param {type}      * @return:      */    protected function getDir($path)    {        if (is_dir($path)) {            $dir =  scandir($path);            foreach ($dir as $value) {                $sub_path = $path . '/' . $value;                if ($value == '.' || $value == '..') {                    continue;                } else if (is_dir($sub_path)) {                    $this->getDir($sub_path);                } else {                    $pathinfo=pathinfo($value);                    if(in_array($pathinfo['extension'],['jpg','png','gif','bmp','raw','jpeg'])){   //只获取符合后缀的文件                        $str=str_replace('../public','',$path);   //因个人需要获取相对路径所以去掉,不需要可以去掉                        array_push($this->paths, $str."/{$value}");                    }                }            }        }    }

php获取目录下的文件名(php显示文件目录及路径)

使用案例

情景:替换原有小程序图片保存图片路径保存了小程序缓存图片路径,需要修正为正确服务器相对路径,数据量又很大,只能编写脚本修复数据

    /**     * @description:执行修复报名头像路径问题      * @param {type}      * @return:      */    public function imgUpdate()    {        try{            $this->paths = [];            $this->getDir(request('path'));            $paths=&$this->paths;            $fileName=[];            foreach($paths as $k =>$path){                $pathinfo=pathinfo($path);                $str=str_replace('.'.$pathinfo['extension'],'',$path);                $fileName=explode('_',basename($str));                if(count($fileName)==3){                    $res=Registration::where(['idcard'=>$fileName[0],'name'=>$fileName[1],'subject_name'=>$fileName[2]])->update(['exam_avatar'=>$path]);                }            }            return response([                'code'=>200,                'message'=>'操作成功'            ]);        }catch(Exception $e){           return response([               'code'=>422,               'message'=>$e->getMessage()           ],422);        }               // dd($fileName);        return $this->success('');    }    /**     * @description: 获取文件路径     * @param {type}      * @return:      */    protected function getDir($path)    {        if (is_dir($path)) {            $dir =  scandir($path);            foreach ($dir as $value) {                $sub_path = $path . '/' . $value;                if ($value == '.' || $value == '..') {                    continue;                } else if (is_dir($sub_path)) {                    $this->getDir($sub_path);                } else {                    $pathinfo=pathinfo($value);                    if(in_array($pathinfo['extension'],['jpg','png','gif','bmp','raw','jpeg'])){   //只获取符合后缀的文件                        $str=str_replace('../public','',$path);   //因个人需要获取相对路径所以去掉                        array_push($this->paths, $str."/{$value}");                    }                }            }        }    }

原创文章,作者:admin,如若转载,请注明出处:https://www.qq65hfghe5.com/tg/92207.html