php循环建立新的文件根据文件名移动文件到指定文件夹修改文件名称

写一个php文件放到你想要批量处理的文件目录下,运行文件即可完成
注意:确认你的文件名是不是时间戳,还有文件里的php文件,要加上判断!不要误删了!

<?php 
    set_time_limit(0); //忽略php.ini设置的脚本运行时间限制 
    $q_array = my_dir('./');
    $q_array = str_replace('.//','',$q_array);
    $a = explode(",",$q_array);
    echo "文件目录中的文件数组</br>";
    var_dump($a);

    forEd($a);//修改文件名

    //循环建立新的文件根据时间戳移动文件到指定文件夹修改名称
    function forEd($arr){
        $dir = array();
        foreach($arr as $v){
            $dir[] = substr($v,0,6);
        }
        foreach($arr as $v){
            $newDir = substr($v,0,6);

                foreach($dir as $v2){
                    if($v2 == $newDir){
                        mk_dir($newDir);
                        @!copy($v,$newDir.'/'.substr($v,6));

                    }
                }

        }
        return true;
    }

    //获取所有的文件返回数组
    function my_dir($dir) {
        $files = array();
        if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
            while(($file = readdir($handle)) !== false) {
                if($file != ".." && $file != ".") { //排除根目录;
                    if(is_dir($dir."/".$file)) { //如果是子文件夹,就进行递归
                        $files[$file] = my_dir($dir."/".$file);
                    } else { //不然就将文件的名字存入数组;
                        $files[] = $dir.'/'.$file;
                    }
                }
            }
            closedir($handle);
            $files = str_replace('..', '',str_replace(',..', ',',implode(",",$files)));
            return $files;
        }
    }

    function mk_dir($dir, $mode = 0755)
    {
        if (is_dir($dir) || @mkdir($dir,$mode)) return true;
        if (!mk_dir(dirname($dir),$mode)) return false;
        return @mkdir($dir,$mode);
    } 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任聪聪

创作不易,你的打赏是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值