我有一个包含两个可能名称的文件:slide_f.png
或slide_f.jpg
。
我想rename
此文件为slide'.$nr.'.jpg
或slide'.$nr.'.png
,具体取决于之前的扩展名。
如果不知道初始文件扩展名怎么办呢?
答案 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);
}