今天闲来无事写了个用PHP实现把目录以及子目录下的文件替换名称,事无巨细都加了注释哦~,对小白很友好,相信大家一定能看得懂,大哥们点个关注吧,嘻嘻!
<?php
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){ //这层目录下的文件名字都保存到fn
if($fn!='.'&&$fn!='..'){ //如果目录不是'.'或'..'
echo "<br>将名为:".$fn."\n\r"; //输出个话,让结果看着清晰点
$curDir = $dirname.'/'.$fn; //拼接一下目录,比如你原来传得$dirname是/home,/home下有个www,这个fn就是www,如果www是目录,就拼接,拼接后就是/home/www了,就是这个目录
if(is_dir($curDir)){// 递归,当目录处理,返到最上一步,把一个大问题拆解成同一规律的小问题
fRename($curDir);
}else{
$path = pathinfo($curDir);//获取目录路径以及相关信息
//改成你自己想要的新名字
$newname = $path['dirname'].'/'.$i.'.'.$path['extension'];//i是你的新名字,后面的$path['extension']补上文件的类型,比如你把哈哈.php要改名,$path['extension']就是后面的.php
echo "替换成:".$i.'.'.$path['extension']."\r\n";
rename($curDir,$newname);//改名字
$i++;//我的例子是把目录以及子目录下的文件都按顺序改成1 2 3 4 ,这样的递增的名字,你们可以自己定义
}
}
}
}
//给出一个目录名称可以是相对路径,也可以是绝对路径
fRename('img\Gastroenterology');//从这里给出你的文件目录开始函数调用
exit();
?>