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

直接上代码,复制即用 protected$paths=[]; /** *@description:获取文件路径 *@param{type} *@return: */ protectedfunctiongetDir($path) { if(is_dir($path)){ $dir=scandir($path); foreach($diras$value){ $sub_path=$path.'…

直接上代码,复制即用

    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}\");
                    }
                }
            }
        }
    }

本文来自投稿,不代表来拓客立场,如若转载,请注明出处:https://www.laituoke.com/ltk/7546.html