我应该如何用下划线替换点而不丢失文件扩展名?
$str = $_FILES['files']['name']; //file.name.word.jpg
$ext = end(explode('.', $str));
$filename = explode('.', $str);
//output file_name_word.jpg
ps:它需要在上传之前..如果用户上传一个带点的文件,它必须重命名并插入到数据库中
用于pathinfo()
提取文件名并 str_replace()
删除其中的所有点。
$filename = pathinfo('/path/to/your/file');
echo str_replace('.', '_', $filename['filename']);
$str = "file.name.word.jpg";
$regex = "/(\.)(?=\S+\.)/";
echo preg_replace($regex, "_", $str);
简写
echo preg_replace("/(\.)(?=\S+\.)/", "_", "file.name.word.jpg");