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 相关文章推荐
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 PHP
php 文本文件的读取效率
Feb 10 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
PHP类的反射用法实例
Nov 03 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP页面跳转实现延时跳转的方法
Dec 10 PHP
利用PHP获取网站访客的所在地位置
Jan 18 PHP
详解php语言最牛掰的Laravel框架
Nov 20 PHP
PHP实现的数据对象映射模式详解
Mar 20 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查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
python高阶爬虫实战分析
2018/07/29 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
利用python 读写csv文件
2020/09/10 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
会计自我鉴定
2014/02/04 职场文书
运动会稿件300字
2014/02/14 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
死亡赔偿协议书
2015/01/28 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技
python实现会员管理系统
2022/03/18 Python