php更改目录及子目录下所有的文件后缀扩展名的代码
php更改目录及子目录下所有的文件后缀扩展名的代码
发布时间:2016-12-29 来源:查字典编辑
摘要:不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。让大家看看是否需要完善的代码主要的目的是批量更改文件后缀由于淘宝...

不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。

让大家看看是否需要完善的

代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。

复制代码 代码如下:

<?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教程学习
编程开发子分类