替换文件名中的点

时间:2013-07-17 01:09:04

标签: php replace filenames

如何在不丢失文件扩展名的情况下用下划线替换点?

$str = $_FILES['files']['name']; //file.name.word.jpg
$ext = end(explode('.', $str));
$filename = explode('.', $str);
//output file_name_word.jpg

ps:它需要在上传之前..如果用户上传带点的文件,则必须重命名并插入db

2 个答案:

答案 0 :(得分:4)

使用pathinfo()提取文件名,str_replace()删除所有点。

$filename = pathinfo('/path/to/your/file');
echo str_replace('.', '_', $filename['filename']);

答案 1 :(得分:1)

$str = "file.name.word.jpg";
$regex = "/(\.)(?=\S+\.)/";
echo preg_replace($regex, "_", $str);

简短表格

echo preg_replace("/(\.)(?=\S+\.)/", "_", "file.name.word.jpg");