当前位置:  开发笔记 > 编程语言 > 正文

如何使用PHP更改文件的扩展名?

如何解决《如何使用PHP更改文件的扩展名?》经验,为你挑选了5个好方法。

如何使用PHP更改文件的扩展名?

例如:photo.jpg到photo.exe



1> Tony Maro..:

在现代操作系统中,文件名很可能包含文件扩展名之前的句号,例如:

my.file.name.jpg

PHP提供了一种方法来查找没有考虑到这一点的扩展名的文件名,然后只需添加新的扩展名:

function replace_extension($filename, $new_extension) {
    $info = pathinfo($filename);
    return $info['filename'] . '.' . $new_extension;
}


我认为这应该保留路径信息:return $ info ['dirname']."/".$ info ['filename'].'' .$ new_extension;
警告:这会丢失路径信息!
对我来说,这是最好的答案,因为它在PHP中使用了一个函数来实现它的设计目的.它还可以在一个命令中进行计算,这意味着PHP内容中的C代码更少.

2> Matt ..:
substr_replace($file , 'png', strrpos($file , '.') +1)

会将任何扩展名更改为您想要的内容.将png替换为您想要的扩展名.


警告:如果找不到任何扩展名,它将破坏您的文件名。

3> Alex..:

替换扩展名,保留路径信息

function replace_extension($filename, $new_extension) {
    $info = pathinfo($filename);
    return ($info['dirname'] ? $info['dirname'] . DIRECTORY_SEPARATOR : '') 
        . $info['filename'] 
        . '.' 
        . $new_extension;
}



4> Galen..:

http://www.php.net/rename



5> Jeremy Ruten..:

在字符串中包含文件名后,首先使用正则表达式将扩展名替换为您选择的扩展名.这是一个小功能,它会做到这一点:

function replace_extension($filename, $new_extension) {
    return preg_replace('/\..+$/', '.' . $new_extension, $filename);
}

然后使用rename()函数使用新文件名重命名该文件.


实际上这是一个坏主意.在现代操作系统中,文件名可能包含名称中的句点,例如,当将扩展名转换为".tif"时,"this.is.a.test.pdf"在此处使用时会将其剥离为"this.tif"而不是,使用:$ info = pathinfo($ filename); return $ info ['filename']."" .$ new_extension;
`preg_replace('/\.[^.]+$/','.'.$ extension,$ file)`匹配最后找到的`.`但如果文件没有扩展名则不能正常工作
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有