现在有这样一个需求,需要把数据库里上传的文件全部重命名一个,使用如下方法可以快速处理
ini_set("max_execution_time", 0); /*使用chunk分块处理数据*/ DB::table(‘xxx‘)->orderby(‘id‘)->where(‘imageurl‘,‘<>‘,‘‘)->chunk(100,function($rows) { // $list=[]; foreach ($rows as $row) { $fileInfo=pathinfo($row->imageurl); $newFileName=‘.‘.$fileInfo[‘dirname‘].‘/‘.$fileInfo[‘filename‘].time().‘.‘.$fileInfo[‘extension‘]; echo ‘正在处理:‘.$newFileName.‘ id:‘.$row->id.‘<br/>‘; if(file_exists(‘.‘.$row->imageurl)) { rename(‘.‘.$row->imageurl,$newFileName); } echo var_dump([‘id‘=>$row->id,‘imageurl‘=>substr($newFileName,1)]); $content=ob_get_contents(); sleep(1); DB::table(‘km‘)->where(‘id‘,$row->id)->update([‘imageurl‘=>substr($newFileName,1)]); } });
直接重命名某目录的文件
$list=glob(‘./upload/content/20200413/*‘); foreach ($list as $row){ $fileInfo=pathinfo($row); $newFileName=$fileInfo[‘dirname‘].‘/‘.$fileInfo[‘filename‘].‘_36‘.‘.‘.$fileInfo[‘extension‘]; echo ‘正在处理:‘.$newFileName.‘<br/>‘; if(file_exists($row)) { rename($row,$newFileName); } }