重命名扩展名未知的文件

时间:2013-06-20 18:43:55

标签: php

我有一个包含两个可能名称的文件:slide_f.pngslide_f.jpg

我想rename此文件为slide'.$nr.'.jpgslide'.$nr.'.png,具体取决于之前的扩展名。

如果不知道初始文件扩展名怎么办呢?

4 个答案:

答案 0 :(得分:6)

使用glob()通过其前缀对文件进行通配符匹配,然后使用pathinfo将文件名分解为其组成部分。然后重建并重命名

$files = glob('slide_f.*');
foreach ($files as $file) {
   $ext = pathinfo($file, PATHINFO_EXTENSION);
   $basename = pathinfo($file, PATHINFO_BASENAME);
   rename($file, "{$basename}{$nr}.{$ext}");
}

答案 1 :(得分:4)

试试file_exists。然后,继续重命名。

if(file_exists($name.'.jpg'))
{
    rename($name.'.jpg', $new_name.'.jpg')
}
elseif(file_exists($name.'.png'))
{
    rename($name.'.png', $new_name.'.png')
}
else
{
    echo "the file doesn't exists";
}

答案 2 :(得分:1)

这个怎么样:

if(file_exists("slide_f.png")){
    //rename to png
}else if(file_exists("slide_f.jpg")){
    //rename to jpg
}else{
    // unknown file format
}

答案 3 :(得分:1)

尝试glob,然后获取文件名。

$fnList = glob('slide_f.*');
foreach($fnList as $fn){
    $fn = preg_replace('/_f\.',$nr,  $fn);
}