windows使用PHP脚本批量重命名文件名称
2022年3月11日14:29:50
<?php //php 7.0 function showFiles(string $dir) { $arr = array(); foreach (new RecursiveDirectoryIterator($dir) as $v) { $dd = []; $dd['file_real_path'] = $v->getRealPath(); $dd['file_name'] = $v->getFilename(); $dd['file_path'] = $v->getPath(); $arr[] = $dd; } return $arr; } $rr = showFiles('D:/download'); //print_r($rr); //die; foreach ($rr as $k => $v) { $v['file_name'] = mb_convert_encoding($v['file_name'], "UTF-8", "GB2312"); if (mb_strpos($v['file_name'], '》') !== false) { $ss = explode('》', $v['file_name']); $file_name = mb_convert_encoding($ss['1'], "GB2312", "UTF-8"); rename($v['file_real_path'], $v['file_path'] . '/' . $file_name); } else { print_r('fuck' . PHP_EOL); } }
需要注意的几点:
1,如果你的系统获取的文件路径是GB2312的,在cmd 或者powershell里是直接可以显示的,因为这两个默认也是gbk编码的一种
2,如果你需要重命名的时候匹配字符串,注意需要先把 GB2312转 UTF-8,在匹配,不然匹配不到
3,处理好文件 名称的时候,在吧UTF-8转回 GB2312在执行 rename 不然容易出现乱码
4,使用的spl扫描目录,很多版本的php应该都可以执行
QQ一群 247823727
QQ二群 166427999
如果项目有技术瓶颈问题,请联系↓↓
QQ: 903464207
微信: zx903464207
QQ二群 166427999
如果项目有技术瓶颈问题,请联系↓↓
QQ: 903464207
微信: zx903464207