技术文摘

帝国CMS远程图片没有后缀的解决办法

作者:雨祺   发表于:
浏览:138次    字数:1139  原创
级别: 站长   总稿: 69 篇,  月稿: 0
帝国CMS7.5版本远程保存图片会存在一个问题,就是传上去的图片没有任何后缀,这个问题相信很多人都遇到了,而且束手无策,今天我就来讲下解决帝国CMS7.5远程保存图片没有后缀的解决方法。
帝国CMS7.0,在路径 e/class/functions.PHP中修改e/class/functions.php大概第1455行和1456行,代码如下:
  1. $zz1="/<(img|IMG) (.*?)(src|SRC)=('|"|\\"|)(.+?)(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP|.jpeg|.JPEG)(.*?)>/is"
  2.        $text=preg_replace($zz1,"<\1 \2\3=\4".$exp1."\5\6".$exp2."\7>",$text); 
修改成下面的样子:
  1. $zz1="/<(img|IMG) (.*?)(src|SRC)=('|"|\\"|)([^'|"|\\"|]*)('|"|\\"|)(.*?)>/is"
  2. $text=preg_replace($zz1,"<\1 \2\3=\4".$exp1."\5".$exp2."\6\7>",$text); 
然后在修改 e/class/connect.php 的大概2862行
  1. $r[filetype]=GetFiletype($url); 
在这句话的后面加入如下代码:
  1. if ((strlen($r[filetype]) !==4 ) OR (strlen($r[filetype]) !==5 )) $r[filetype]=".jpg"
修改完后不影响原来正常的使用,也就是普通形式的图片,和不带扩展名形式的图片都能够正确的远程保存下来。 帝国CMS7.2和7.5需要替换e/class/functions.php中的两个位置,
第一个位置:
  1. //替换图片标签 function RepImg($text,$copyflash){ global $ECMS_config; $exp1=""; $exp2=""; //去掉图片链接 if($ecms_config['sets']['saveurlimgclearurl']==1) { $zz2="/<(a|A) (.*?)(href|Href)=('|"|\\"|)(.+?)><(img|IMG) (.*?)(src|SRC)=('|"|\\"|)(.+?)(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP|.jpeg|.JPEG)(.*?)></(a|A)>/is"; $text=preg_replace($zz2,"<\6 \7\8=\9\10\11\12>",$text); } $zz1="/<(img|IMG) (.*?)(src|SRC)=('|"|\\"|)(.+?)(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP|.jpeg|.JPEG)(.*?)>/is"; $text=preg_replace($zz1,"<\1 \2\3=\4".$exp1."\5\6".$exp2."\7>",$text); return $text; } 
第二个位置:
  1. function DoTranUrl($url,$classid){ 
  2.         global $public_r,$class_r,$ecms_config,$efileftp_fr; 
  3.         $classid=(int)$classid; 
  4.         //处理地址 
  5.         $url=trim($url); 
  6.         $url=str_replace(" ","%20",$url); 
  7.     $r[tran]=1; 
  8.         //附件地址 
  9.         $r[url]=$url; 
  10.         //文件类型 
  11.         $r[filetype]=GetFiletype($url); 
  12.         if(CheckSaveTranFiletype($r[filetype])) 
  13.         { 
  14.                 $r[tran]=0; 
  15.                 return $r; 
  16.         } 
  17.         //是否已上传的文件 
  18.         $havetr=CheckNotSaveUrl($url); 
  19.         if($havetr) 
  20.         { 
  21.                 $r[tran]=0; 
  22.                 return $r; 
  23.         } 
  24.         //是否地址 

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: 图片 远程 帝国CMS

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿