如何在不丢失文件扩展名的情况下用下划线替换点?
$str = $_FILES['files']['name']; //file.name.word.jpg
$ext = end(explode('.', $str));
$filename = explode('.', $str);
//output file_name_word.jpg
ps:它需要在上传之前..如果用户上传带点的文件,则必须重命名并插入db
答案 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");