php,将字符串添加到filename

时间:2011-05-03 20:16:06

标签: php html

我有两个变量:

$lang = hu

$image = image.jpg

如何在php中将image.jpg替换为image_hu.jpg?也许用str_replace?但是怎么样?

4 个答案:

答案 0 :(得分:5)

此方法适用于任何文件类型,并且图像名称具有多个句点。 (DEMO

<强>代码

<?php 

    echo merge('image.test.1234.gif', '_en');

    function merge($file, $language){
        $ext = pathinfo($file, PATHINFO_EXTENSION);
        $filename = str_replace('.'.$ext, '', $file).$language.'.'.$ext;
        return ($filename);
    }
?>

<强>结果

image.test.1234_en.gif

答案 1 :(得分:2)

使用preg_replace会很好用:

$new_str = preg_replace('/(\.[^.]+)$/', sprintf('%s$1', $lang), $image);

答案 2 :(得分:2)

我会使用以下内容:

$new_str = preg_replace( '/^(.*?)\.(\w+)$/', '${1}$lang.${2}', $image );

这样你的代码仍适用于JPG / gif / jpeg / PNG / etc

答案 3 :(得分:1)

另一种选择是使用内置函数pathinfo将文件扩展名与文件名分开。

$path_parts = pathinfo('image.jpg');

$final = $path_parts['filename'] . $lang . '.' . $path_parts['extension'];