php逐行读写文件
PHP实现读取文件夹及批量重命名文件操作示例本文实例讲述了php实现读取文件夹及批量重命名文件操作。分享给大家供大家参考,具体如下:
以读取从网上下载的评书解压后的文件夹为例,并批量重命名
文件夹内容如下,现在使用php读取这个文件夹里面的文件,并批量重命名为"隋唐演义+序号.mp3"的格式:
|
<?php $dir1 = './dir1/' ; //读取文件夹名称 (重命名为dir1避免中文报错,移动到与要执行的php文件同级目录) $filearr = scandir( $dir1 ); //读取文件夹 print_r( $filearr ); |
进一步操作,对获得的文件数组做一些处理:
|
<?php $dir1 = './dir1/' ; //读取文件夹名称(避免使用中文) $filearr = scandir( $dir1 ); //读取文件夹 unset( $filearr [0]); //去除多余的元素 unset( $filearr [1]); $filearr = array_values ( $filearr ); //使数组从0开始,以1递增 print_r( $filearr ); |
现在对文件数组循环,重命名文件,并移动到文件夹dir2(移动文件是rename()函数造成的):
|
<?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文件夹内容:
如果使用中文名对文件重命名,会出现乱码的现象,原因是字符集编码设置的问题,解决方法如下:(但遇到某些中文字符仍旧是乱码)
|
<?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