PHP批量递归修改文件夹名或文件名

<?php

    //定义生成器提升性能
    function generate($path)
    {
        $list = scandir($path);
        if(is_null($list) || empty($list)) {
            return null;
        }
        foreach($list as $k=>$v){
            yield $v;
        }
    }

    function multi($path)
    {
        $value = generate($path);
        if(is_null($value)){
            return;
        }
        //使用正则修改文件名
        $regexp = '/【.*?】/';
        foreach($value as $k => $v){
            if(!in_array($v,['.','..',__FILE__])){
                $new = preg_replace($regexp,'',$v);
                //windows目录下使用\斜线
                rename($path.'\\'.$v,$path.'\\'.$new);
                if(is_dir($path.'\\'.$new)){
                    multi($path.'\\'.$new);
                }
            }
        }
    }
    multi(__DIR__);
posted @ 2021-08-13 16:26  编程混子  阅读(128)  评论(0编辑  收藏  举报