远程保存图片的一个bug 新闻数据,带图片,勾选中远程保存图片如果图片格式是以下这种形式的,则远程保存失败例如:http://pic.baidu.com/album/user/547/22/RE1SQBgHYw/index/670
不啰嗦下面开始讲解解决方法。
替换位置1: e/class/functions.php中
- //替换图片标签
- 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;
- }
替换位置2: 修改e/class/connect.php大概3119行,
- //远程保存
- function DoTranUrl($url,$classid){
- global $public_r,$class_r,$ecms_config,$efileftp_fr;
- $classid=(int)$classid;
- //处理地址
- $url=trim($url);
- $url=str_replace(" ","%20",$url);
- $r[tran]=1;
- //附件地址
- $r[url]=$url;
- //文件类型
- $r[filetype]=GetFiletype($url);
- if(CheckSaveTranFiletype($r[filetype]))
- {
- $r[tran]=0;
- return $r;
- }
- //是否已上传的文件
- $havetr=CheckNotSaveUrl($url);
- if($havetr)
- {
- $r[tran]=0;
- return $r;
- }
- //是否地址