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 21 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
如何利用PHP执行.SQL文件
Jul 05 PHP
PHP生成条形图的方法
Dec 10 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
php时间函数用法分析
May 28 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
php实现文章置顶功能的方法
Oct 20 PHP
微信公众号模板消息群发php代码示例
Dec 29 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP常见字符串操作函数与用法总结
Mar 04 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中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
javascript 函数式编程
2007/08/16 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
python散点图实例之随机漫步
2018/08/27 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
Python中Yield的基本用法
2020/10/18 Python
学前教育专业毕业生自荐信
2013/10/03 职场文书
人事助理自荐信
2014/02/02 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
公司禁烟通知
2015/04/23 职场文书
2015年度企业工作总结
2015/05/21 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
在 Python 中利用 Pool 进行多线程
2022/04/24 Python