帝国cms用正则替换preg_match("/([^\/])+.(jpg|gif|bmp|bnp|png)$/",$data,$arr);再输出的图片路径前加前缀或后缀的方法(p

有时我们会有这样的需求,在图片路径中的图片名称前边加一个前缀,例如想实现下面的效果:

原路径/pc/2017/04/04/6a79757ce58fd5587b49d924c2e8f815.gif

新路径/pc/2017/04/04/aaa_6a79757ce58fd5587b49d924c2e8f815.gif

这时我们可以借助正则来完成。

编写一个函数,首先正则取出图片名称,然后在图片名称前加前缀符号。

函数如下,帝国cms可以将函数放在userfun.php文件中:

function Reimgname($data,$qz){

preg_match("/([A-Za-z0-9]+)+.(jpg|gif|bmp|bnp|png)$/",$data,$arr);

$oldname=$arr[0];

$newname=$qz.'_'.$arr[0];

$url=str_replace($oldname,$newname,$data);

return $url;

}

接着在模板中调用这个函数,方式如下,第一个参数为图片路径,第二个参数为增加的前缀:

如果是在内容页调用titlepic标题图片字段,就这样用:

当然这个函数并不限于帝国cms使用,其他php程序也是可以用的。

上面的正则只适用于英文和数字命名的图片,如果图片中含有中文怎么办呢?我们可以用下面的格式

preg_match("/([^\/])+.(jpg|gif|bmp|bnp|png)$/",$data,$arr);

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:帝国cms用正则替换preg_match("/([^\/])+.(jpg|gif|bmp|bnp|png)$/",$data,$arr);再输出的图片路径前加前缀或后缀的方法(p