php更改目录及子目录下所有的文件后缀扩展名的代码
不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。
让大家看看是否需要完善的
代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。
用字符串替换不太严谨,万一名称中就有gif程序就有异常。
建议使用PHP函数pathinfo(),循环段可修改为
让大家看看是否需要完善的
代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。
代码如下:
<?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); } }
相关推荐
ljbhander 2020-06-14
旭灿 2020-09-30
WenCoo 2020-09-16
TuxedoLinux 2020-08-28
hongsheyoumo 2020-08-19
wintelx 2020-08-09
insularisland 2020-08-09
cwgxiaoguizi 2020-08-09
benico 2020-07-28
nebulali 2020-07-26
chenkai00 2020-07-26
tengyuan 2020-07-26
zhongcanw 2020-07-25
89590098 2020-07-19
dongfangxiaozi 2020-07-19
学峰的学习笔记 2020-07-18
深井兮兮 2020-07-18