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中数据的批量导入(csv文件)
Oct 09 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
php常用Stream函数集介绍
Jun 24 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 PHP
PHP字符串和十六进制如何实现互相转换
Jul 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
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
不常用但很实用的PHP预定义变量分析
2019/06/25 PHP
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
python之wxPython菜单使用详解
2014/09/28 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
Django框架多表查询实例分析
2018/07/04 Python
python实现名片管理系统项目
2019/04/26 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
2014年医院十一国庆节活动方案
2014/09/15 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
卖房协议书样本
2014/10/30 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
如何利用React实现图片识别App
2022/02/18 Javascript