帝国cms用正则替换在输出的图片路径前加前缀或后缀的方法(php)

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

折叠XML/HTML 代码
  1. 原路径 /pc/2017/04/04/6a79757ce58fd5587b49d924c2e8f815.gif  
  2. 新路径 /pc/2017/04/04/aaa_6a79757ce58fd5587b49d924c2e8f815.gif  

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

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

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

折叠PHP 代码
  1. function Reimgname($data,$qz){  
  2.     preg_match("/([A-Za-z0-9]+)+.(jpg|gif|bmp|bnp|png)$/",$data,$arr);  
  3.     $oldname=$arr[0];  
  4.     $newname=$qz.'_'.$arr[0];  
  5.     $url=str_replace($oldname,$newname,$data);  
  6.     return $url;  
  7. }  

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

折叠PHP 代码
  1. <?=Reimgname('/pc/2017/04/04/08/6a79757ce58fd5587b49d924c2e8f815.gif','88888');?>  

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

折叠PHP 代码
  1. <?=Reimgname($navinfor['titlepic'],'88888');?>  

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

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

折叠PHP 代码
  1. preg_match("/([^\/])+.(jpg|gif|bmp|bnp|png)$/",$data,$arr);  

 

Tags: 路径   图片   php   正则
cms大学,为帝国cms用户提供动力
Copyright © 2016 CmsDX.com All Rights Reserved.