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
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
PHP 输出URL的快捷方式示例代码
Sep 22 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
微信支付开发交易通知实例
Jul 12 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 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
PL-880隐藏功能
2021/03/01 无线电
Php获取金书网的书名的实现代码
2010/06/11 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
python上selenium的弹框操作实现
2020/07/13 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
企业员工培训感言
2014/02/26 职场文书
增员口号大全
2014/06/18 职场文书
材料员岗位职责范本
2015/04/11 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书