文件遍历操作疑问:怎样将所有符合条件的文件更名? basename()这个函数就可以读出不带后缀的文件名了。存到数组了,按大到小排序,如果数据加后缀名等于文件,就改名,把改过的弹出数组。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $ar = glob('*.txt'); //读取文件名natsort($ar); //按自然顺序排序$ar = array_reverse($ar); //转置数组foreach($ar as $fname) { ....//改名操作} 我想到的是这样的递归函数,唠叨看看如何:function a($id){ if(!file_exists($id.".txt")) break; a($id+1);rename($id.".txt",($id+1).".txt");} 1、break 跳到哪里?2、改名前需检查目标文件是否存在,否则可能发生错误。而你没有做3、如果是文件$id.".txt"不存在则返回的话,那么当$id不连续的时候则大于$id的部分将不会被改名 1、break应该改为return。2、是的,但是它这个是保证顺序递增1的。3、同上。试验证明这个可以的。之前不解的是没有想到可以先递归后改名。不过唠叨的代码受教了。 关于openssl求大牛 Jquery如何取到foeeach循环出来的ID 如何从一段字符中取出我的我想要的部分 传值问题请教 征求意见 关于js中的escape函数在PHP中的解决方案 gd显示中文要怎样设置才行? 如何用php的socket开发可验证的邮件发送程序 有高手知道怎样在php中判断一个字符是否是汉字的办法吗? 如何用php给姓名做UTF-8编码 本人用虚拟空间,出现此问题!chmod(): Operation not permitted 已经FTP修改权限,还是不行啊 100分,求一个PHP的树形论坛代码或设计思想
natsort($ar); //按自然顺序排序
$ar = array_reverse($ar); //转置数组
foreach($ar as $fname) {
....//改名操作
}
if(!file_exists($id.".txt")) break;
a($id+1);rename($id.".txt",($id+1).".txt");
}
2、改名前需检查目标文件是否存在,否则可能发生错误。而你没有做
3、如果是文件$id.".txt"不存在则返回的话,那么当$id不连续的时候则大于$id的部分将不会被改名
2、是的,但是它这个是保证顺序递增1的。
3、同上。试验证明这个可以的。之前不解的是没有想到可以先递归后改名。不过唠叨的代码受教了。