-1

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

我想rename将此文件添加到slide'.$nr.'.jpgslide'.$nr.'.png取决于以前的扩展名。

在不知道初始文件扩展名的情况下如何做到这一点?

4

4 回答 4

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}");
}
于 2013-06-20T18:49:22.690 回答
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";
}
于 2013-06-20T18:47:05.313 回答
1

那这个呢:

if(file_exists("slide_f.png")){
    //rename to png
}else if(file_exists("slide_f.jpg")){
    //rename to jpg
}else{
    // unknown file format
}
于 2013-06-20T18:48:46.990 回答
1

试试glob,然后你会得到文件名。

$fnList = glob('slide_f.*');
foreach($fnList as $fn){
    $fn = preg_replace('/_f\.',$nr,  $fn);
}
于 2013-06-20T18:53:05.377 回答