php更改目录及子目录下所有的文件后缀扩展名的代码
作者:bea
不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。 让大家看看是否需要完善的 代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。 代码如下: <?php //本文件和要改变的目录下的文件 放在同一文件夹下 define("STA",".gif");//原来的文件格式 define("END",".jpg");//要改变的格式 $dir="./"; $arr=allfile($dir); f
不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。
让大家看看是否需要完善的
代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。
代码如下:
<?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
//本文件和要改变的目录下的文件 放在同一文件夹下
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下网站防IP攻击代码,超级实用
- php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
- php park、unpark、ord 函数使用方法(二进制流接口应用实例)
- php通过文件头检测文件类型通用代码类(zip,rar等)
- php empty,isset,is_null判断比较(差异与异同)
- 学习php笔记 字符串处理
- PHP 函数执行效率的小比较
- PHP类中Static方法效率测试代码
- 发款php蜘蛛统计插件只要有mysql就可用
- PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
- php中去除所有js,html,css代码
- PHP入门学习笔记之一
- PHP 显示客户端IP与服务器IP的代码
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- 使用PHP 5.0创建图形的巧妙方法
- POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
- 献给php初学者(入门学习经验谈)
- 发款php蜘蛛统计插件只要有mysql就可用