将后缀添加到文件名

Key*_*eyo 3 php regex

$config['file_name'] = preg_replace('/(\.gif|\.jpg|\.png)/', '_thumb$1', $filename);
Run Code Online (Sandbox Code Playgroud)

基本上我想filename.jpg成为filename_thumb.jpg

我不明白为什么但延期重复两次.(filename.jpg.jpg).

编辑这确实有效,我的代码中还有其他问题.

ale*_*lex 10

最好的方法可能是......

$filename_ext = pathinfo($filename, PATHINFO_EXTENSION);

$filename = preg_replace('/^(.*)\.' . $filename_ext . '$/', '$1_thumb.' . $filename_ext, $filename);
Run Code Online (Sandbox Code Playgroud)

我justed测试了它,$filename = 'path/to/something.jpg';输出是path/to/something_thumb.jpg.

我说最好的方法,因为通常使用PHP的内置函数更好.这也允许PHP可以处理的所有文件扩展名(字符串拆分,它应该是全部).


Art*_*cto 5

应该管用.

echo preg_replace('/(\.gif|\.jpg|\.png)/', '_thumb$1', "filename.jpg");
Run Code Online (Sandbox Code Playgroud)

filename_thumb.jpg.

在任何情况下,请使用表达式'/(\.gif|\.jpg|\.png)$/'(更好的是,不要使用括号并将$ 1替换为$ 0),以便它只匹配字符串(如果它在最后).