1,批量修改文件夹名称
比如文件夹名称中有特殊符号需要替换为空,如"新!建文件夹"改为"新建文件夹"
代码(需要考虑中文!和英文!)
header("Content-type: text/html; charset=utf-8");
// 利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称
function fRename($dirname) {
if (!is_dir($dirname)) {
echo "{$dirname}不是一个有效的目录!";
exit();
}
$handle = opendir($dirname);
$i = 1;
while (($fn = readdir($handle)) !== false) {
if ($fn != '.' && $fn != '..') {
// 获取的文件夹名称是gb2312编码,输出到页面上需要转换成utf-8编码
$fn_utf8 = iconv("gb2312", "utf-8", $fn);
echo "将名为:" . $fn_utf8 . " ";
// 将文件夹名称中的中文!和英文!替换为空
$fn_new_utf8 = str_ireplace('!','',str_ireplace('!','',$fn_utf8));
// 将文件夹名称编码由utf-8改为gb2312,重命名文件夹的时候用
$fn_new = iconv("utf-8", "gb2312", $fn_new_utf8);
$curDir = $dirname . '/' . $fn;
$curDir_new = $dirname . '/' . $fn_new;
if (is_dir($curDir)) {
echo "替换成:" . $fn_new_utf8 . "
";
rename($curDir, $curDir_new);
}
}
}
}
// 给出一个目录名称可以是相对路径,也可以是绝对路径
fRename('1');
?>
2,批量修改文件名称
批量修改文件名称,将每个文件夹里面的文件重命名为1,2,3……
header("Content-type: text/html; charset=utf-8");
// 利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称
function fRename($dirname) {
if (!is_dir($dirname)) {
echo "{$dirname}不是一个有效的目录!";
exit();
}
$handle = opendir($dirname);
$i = 1;
while (($fn = readdir($handle)) !== false) {
if ($fn != '.' && $fn != '..') {
$curDir = $dirname . '/' . $fn;
if (is_dir($curDir)) {
fRename($curDir);
} else {
$path = pathinfo($curDir);
$fn_path = $path['dirname'] . '/' . $fn;
// 获取的文件名称和路径是gb2312编码,输出到页面上需要转换成utf-8编码
$fn_path_utf8 = iconv("gb2312", "utf-8", $fn_path);
echo "将名为:" . $fn_path_utf8 . " ";
// 改成你自己想要的新名字
$fn_path_new = $path['dirname'] . '/' . $i . '.' . $path['extension'];
$fn_path_new_utf8 = iconv("gb2312", "utf-8", $fn_path_new);
echo "替换成:" . $fn_path_new_utf8 . "
";
rename($curDir, $fn_path_new);
$i++;
}
}
}
}
// 给出一个目录名称可以是相对路径,也可以是绝对路径
fRename('demo');
?>