本文实例讲述了php实现读取文件夹及批量重命名文件操作。分享给大家供大家参考,具体如下:
以读取从网上下载的评书解压后的文件夹为例,并批量重命名
文件夹内容如下,现在使用php读取这个文件夹里面的文件,并批量重命名为"隋唐演义+序号.mp3"的格式:
1
2
3
4
|
<?php
$dir1 = './dir1/' ; //读取文件夹名称 (重命名为dir1避免中文报错,移动到与要执行的php文件同级目录)
$filearr = scandir( $dir1 ); //读取文件夹
print_r( $filearr );
|
读取文件夹内容如下:
进一步操作,对获得的文件数组做一些处理:
1
2
3
4
5
6
7
|
<?php
$dir1 = './dir1/' ; //读取文件夹名称(避免使用中文)
$filearr = scandir( $dir1 ); //读取文件夹
unset( $filearr [0]); //去除多余的元素
unset( $filearr [1]);
$filearr = array_values ( $filearr ); //使数组从0开始,以1递增
print_r( $filearr );
|
此时文件数组的格式就正常了:
现在对文件数组循环,重命名文件,并移动到文件夹dir2(移动文件是rename()函数造成的):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
$dir1 = './dir1/' ; //读取文件夹名称(避免使用中文)
$dir2 = './dir2/' ; //移动到文件夹名称(避免使用中文)
$filearr = scandir( $dir1 ); //读取文件夹
unset( $filearr [0]); //去除多余的元素
unset( $filearr [1]);
$filearr = array_values ( $filearr ); //使数组从0开始,以1递增
$filecount = count ( $filearr ); //文件数量
$onenum = 1; //起始编号
$maxnum = $onenum + $filecount ; //最大循环次数
$title = 'styy' ; //文件标题
$houzhui = '.mp3' ; //文件后缀
for ( $i = $onenum ; $i <= $maxnum ; $i ++) {
for ( $j =0; $j < $filecount ; $j ++) {
if ( $i <10){
$i = '0' . $i ;
}
rename( $dir1 . $filearr [ $j ], $dir2 . $title . $i . $houzhui );
$i ++;
}
}
|
操作结果如下,批量重命名成功,dir2文件夹内容:
如果使用中文名对文件重命名,会出现乱码的现象,原因是字符集编码设置的问题,解决方法如下:(但遇到某些中文字符仍旧是乱码)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
$dir1 = './dir1/' ; //读取文件夹名称
$dir2 = './dir2/' ; //移动到文件夹名称
$filearr = scandir( $dir1 ); //读取文件夹
unset( $filearr [0]); //去除多余的元素
unset( $filearr [1]);
$filearr = array_values ( $filearr ); //使数组从0开始,以1递增
$filecount = count ( $filearr ); //文件数量
$onenum = 1; //起始编号
$maxnum = $onenum + $filecount ; //最大循环次数
$title = '隋唐演义' ; //文件标题
$houzhui = '.mp3' ; //文件后缀
for ( $i = $onenum ; $i <= $maxnum ; $i ++) {
for ( $j =0; $j < $filecount ; $j ++) {
if ( $i <10){
$i = '0' . $i ;
}
$filename = $title . $i . $houzhui ;
rename( $dir1 . $filearr [ $j ], $dir2 .iconv( "utf-8" , "gb2312" , $filename )); //设置字符集
$i ++;
}
}
|
运行后dir2文件夹内容如下:
到此完成php对文件夹中文件的读取、批量重命名操作。另外可以构思一个简单的页面自定义操作(如下图,代码省略)
希望本文所述对大家php程序设计有所帮助。
原文链接:https://blog.csdn.net/msllws/article/details/80956843