php更改目录及子目录下所有的文件后缀扩展名的代码

2015-01-24信息快讯网

今天遇到要改变当前目录下指定类型的文件类型,本来想要用批处理来做这个,结果没找到合适。就自己去查了下资料,用Php来处理一下。

不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。
让大家看看是否需要完善的
代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。
 
<?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中运用jQuery的Ajax跨域调用实现代码
修改PHP的memory_limit限制的方法分享
php中取得文件的后缀名?
ThinkPHP写第一个模块应用
php 文本文件的读取效率
php+iframe实现隐藏无刷新上传文件
PHP备份数据库生成SQL文件并下载的函数代码
PHP __autoload函数(自动载入类文件)的使用方法
第六章 php目录与文件操作
遍历指定目录下的所有目录和文件的php代码
使用PHP遍历文件夹与子目录的函数代码
php中设置多级目录session的问题
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
rrmdir php中递归删除目录及目录下的文件
PHP统计目录下的文件总数及代码行数(去除注释及空行)
发款php蜘蛛统计插件只要有mysql就可用
利用php+mysql来做一个功能强大的在线计算器
发一个php简单的伪原创程序,配合商城采集用的
php知道与问问的采集插件代码
php笔记之常用文件操作
php+jquery编码方面的一些心得(utf-8 gb2312)
php更改目录及子目录下所有的文件后缀的代码
小文件php+SQLite存储方案
PHP中文件上传的一个问题
使用bcompiler对PHP文件进行加密的代码
php自定义函数之递归删除文件及目录
php自动获取目录下的模板的代码
php中定义网站根目录的常用方法
用PHP实现递归循环每一个目录
PHP 删除一个目录及目录下的所有文件的函数代码
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
PHP 获取目录下的图片并随机显示的代码
©2014-2024 dbsqp.com