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中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
php 定义404页面的实现代码
Nov 19 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
php文件压缩之PHPZip类用法实例
Jun 18 PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 PHP
微信支付开发订单查询实例
Jul 12 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
php生成无限栏目树
Mar 16 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
php命令行模式代码实例详解
Feb 26 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
中国收音机工业发展史
2021/03/02 无线电
SONY SRF-M100的电路分析
2021/03/02 无线电
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
jQuery入门知识简介
2010/03/04 Javascript
JavaScript中获取元素索引的函数
2010/09/10 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
Three.js加载外部模型的教程详解
2017/11/10 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
python批量生成本地ip地址的方法
2015/03/23 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
2019/04/11 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
解决python flask中config配置管理的问题
2019/07/26 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Keras 使用 Lambda层详解
2020/06/10 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
Otel.com:折扣酒店预订
2017/08/24 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
幼儿园春游活动方案
2014/01/19 职场文书
《尊严》教学反思
2014/02/11 职场文书
婚礼主持词开场白
2014/03/13 职场文书
二年级小学生评语
2014/04/21 职场文书
差生评语大全
2014/05/04 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
政府四风问题整改措施
2014/10/04 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
钱学森观后感
2015/06/04 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript