PHP实现读取文件夹及批量重命名文件操作示例


Posted in PHP onApril 15, 2019

本文实例讲述了PHP实现读取文件夹及批量重命名文件操作。分享给大家供大家参考,具体如下:

以读取从网上下载的评书解压后的文件夹为例,并批量重命名

文件夹内容如下,现在使用php读取这个文件夹里面的文件,并批量重命名为"隋唐演义+序号.mp3"的格式:

PHP实现读取文件夹及批量重命名文件操作示例

<?php 	
	$dir1 = './dir1/';//读取文件夹名称 (重命名为dir1避免中文报错,移动到与要执行的php文件同级目录)
	$filearr = scandir($dir1);//读取文件夹
	print_r($filearr);
读取文件夹内容如下:

PHP实现读取文件夹及批量重命名文件操作示例

进一步操作,对获得的文件数组做一些处理:

<?php 	
	$dir1 = './dir1/';//读取文件夹名称(避免使用中文)
	$filearr = scandir($dir1);//读取文件夹
	unset($filearr[0]);//去除多余的元素
	unset($filearr[1]);
	$filearr = array_values($filearr);//使数组从0开始,以1递增
	print_r($filearr);
此时文件数组的格式就正常了:

PHP实现读取文件夹及批量重命名文件操作示例

现在对文件数组循环,重命名文件,并移动到文件夹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实现读取文件夹及批量重命名文件操作示例

如果使用中文名对文件重命名,会出现乱码的现象,原因是字符集编码设置的问题,解决方法如下:(但遇到某些中文字符仍旧是乱码)

<?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对文件夹中文件的读取、批量重命名操作。另外可以构思一个简单的页面自定义操作(如下图,代码省略)

PHP实现读取文件夹及批量重命名文件操作示例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP入门
Oct 09 PHP
认识并使用PHP超级全局变量
Jan 26 PHP
php header示例代码(推荐)
Sep 08 PHP
php随机输出名人名言的代码
Oct 07 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
php中删除、清空session的方式总结
Oct 09 PHP
PHP中类的自动加载的方法
Mar 17 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
Windows下php+mysql5.7配置教程
May 16 PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 #PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 #PHP
Laravel如何创建服务器提供者实例代码
Apr 15 #PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 #PHP
php xhprof使用实例详解
Apr 15 #PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 #PHP
vmware linux系统安装最新的php7图解
Apr 14 #PHP
You might like
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php分页示例分享
2014/04/30 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
Python中文编码那些事
2014/06/25 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
python爬取微信公众号文章的方法
2019/02/26 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
Python datetime模块使用方法小结
2020/06/18 Python
opencv 阈值分割的具体使用
2020/07/08 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
Java文件和目录(IO)操作
2014/08/26 面试题
十佳大学生村官事迹
2014/01/09 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
golang 比较浮点数的大小方式
2021/05/02 Golang