遠程保存圖片的一個bug
新聞數據,帶圖片,勾選中 遠程保存圖片
如果圖片格式是以下這種形式的,則遠程保存失敗
解決方法:
遠程保存圖片的一個bug
新聞數據,帶圖片,勾選中 遠程保存圖片
如果圖片格式是以下這種形式的,則遠程保存失敗
http://pic.baidu.com/album/user/547/22/RE1SQBgHYw/index/670
解決辦法
7.0替換一個位置: e/class/functions.php中
修改e/class/functions.php大概第1455行和1456行
$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);
改為
$zz1="/\&;(img|IMG) (.*?)(src|SRC)=('|\&;|\\\\\&;|)([^'|\&;|\\\\\&;|]*)('|\&;|\\\\\&;|)(.*?)>/is";
$text=preg_replace($zz1,"<\\1 \\2\\3=\\4".$exp1."\\5".$exp2."\\6\\7>",$text);
修改e/class/connect.php大概2862行
$r[filetype]=GetFiletype($url);
后面再加一行
if ((strlen($r[filetype]) !==4 ) OR (strlen($r[filetype]) !==5 )) $r[filetype]=".jpg";
修改完后不影響原來正常的使用,也就是普通形式的圖片,和不帶擴展名形式的圖片都能夠正確的遠程保存下來
-----------------------------------------------------------------------------
7.2替換2個位置:
替換位置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;
}
//是否地址