【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__);
相關文章
相關標籤/搜索