php更改目录及子目录下所有的文件后缀扩展名的代码


Posted in PHP onOctober 12, 2010

不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。
让大家看看是否需要完善的
代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。

<?php 
//本文件和要改变的目录下的文件 放在同一文件夹下 
define("STA",".gif");//原来的文件格式 
define("END",".jpg");//要改变的格式 
$dir="./"; 
$arr=allfile($dir); 
foreach($arr as $t) 
{ 
$t=str_replace(".//","",$t); 
if(substr_count($t,STA)>0) 
{ 
$f2=str_replace(STA,"",$t); 
rename($t,$f2.END); 
} 
} 
//获取目录下所有文件的函数 
function allfile($dir) 
{ 
$files=array(); 
if(is_file($dir)) 
{ 
return $dir; 
} 
$handle = opendir($dir); 
if($handle) { 
while(false !== ($file = readdir($handle))) { 
if ($file != '.' && $file != '..') { 
$filename = $dir . "/" . $file; 
if(is_file($filename)) { 
$files[] = $filename; 
}else { 
$files = array_merge($files, allfile($filename)); 
} 
} 
} // end while 
closedir($handle); 
} 
return $files; 
} 
?>

用字符串替换不太严谨,万一名称中就有gif程序就有异常。
建议使用PHP函数pathinfo(),循环段可修改为
foreach($arr as $t) 
{ 
$path_parts = pathinfo($t); 

if($path_parts["extension"] == STA) 

{ 


rename($t,$path_parts["dirname"]."/".basename($t,STA).END); 

} 
}
PHP 相关文章推荐
PHP 采集程序原理分析篇
Mar 05 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
php _autoload自动加载类与机制分析
Feb 10 PHP
使用php判断网页是否gzip压缩
Jun 25 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
PHP中的一些常用函数收集
May 26 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 #PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 #PHP
php知道与问问的采集插件代码
Oct 12 #PHP
php笔记之常用文件操作
Oct 12 #PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 #PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 #PHP
PHP OPCode缓存 APC详细介绍
Oct 12 #PHP
You might like
php empty函数 使用说明
2009/08/10 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
js运动应用实例解析
2015/12/28 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
Python实现学生成绩管理系统
2020/04/05 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
幼儿园新学期寄语
2014/01/18 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
兵马俑导游词
2015/02/02 职场文书
教师辞职书范文
2015/02/26 职场文书
实习班主任自我评价
2015/03/11 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书