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的安全策略
Oct 09 PHP
在PHP中读取和写入WORD文档的代码
Apr 09 PHP
php addslashes 函数详细分析说明
Jun 23 PHP
PHP连接SQLServer2005 的问题解决方法
Jul 19 PHP
php产生随机数的两种方法实例代码 输出随机IP
Apr 08 PHP
深入密码加salt原理的分析
Jun 06 PHP
Linux中用PHP判断程序运行状态的2个方法
May 04 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
功能强大的PHP发邮件类
Aug 29 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 PHP
laravel Model 执行事务的实现
Oct 10 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给一组指定关键词添加span标签的方法
2015/03/31 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
JavaScript 空位补零实现代码
2010/02/26 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
vue如何将v-for中的表格导出来
2018/05/07 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
python中定义结构体的方法
2013/03/04 Python
Flask框架配置与调试操作示例
2018/07/23 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
django的ORM模型的实现原理
2019/03/04 Python
Python中bisect的使用方法
2019/12/31 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
python 如何引入协程和原理分析
2020/11/30 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
C/C++有关内存的思考题
2015/12/04 面试题
应届毕业生求职信
2013/11/30 职场文书
实习评语
2013/12/16 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
电焊工工作岗位职责
2014/02/06 职场文书
爱我中华教学反思
2014/04/28 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript