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中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
php 文本文件的读取效率
Feb 10 PHP
PHP输出时间差函数代码
Jan 28 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
smarty模板数学运算示例
Dec 11 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
Laravel下生成验证码的类
Nov 15 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 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 危险函数解释 分析
2009/04/22 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
php中错误处理操作实例分析
2019/08/23 PHP
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Python中random模块用法实例分析
2015/05/19 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
Django models.py应用实现过程详解
2019/07/29 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
四群教育工作实施方案
2014/03/26 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android