网络建站知识

精准传达 • 价值共享

洞悉互联网前沿资讯,探寻网站营销规律

查看其它板块

织梦DEDECMS后台编辑器如何远程保存微信公众号/新浪博客图片到本地?

作者:Smileby陌少羽 | 2019-04-20 14:37 |点击:

在使用织梦DEDECMS时,很多时候从一些网站复制的内容时,其中的图片,保存时不能把远程图片下载到本地,像新浪博客,网易等一些大型网站图片有做防盗链处理,图片地址并没有后辍名!因此在使用dedecms默认的下载远程功能没办法实现!

对于http的远程图片本地化,dedecms能很好解决,但是碰到https的就无法本地化了,以下是解决办法:
找到  dede//inc/inc_archives_functions.php文件里面GetCurContent($body)这个函数,里面
PHP
preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
$img_array = array_unique($img_array[1]);
这一段改为:
PHP
$img_array = array();   //普通图片
$bgimg_array = array(); //背景图片
$img_array_https = array();
preg_match_all("/<img[^>]*src=[\"|'|\s]{0,}(http:\/\/([^>]*))(\"|'|\s)/isU",$body,$img_array);
preg_match_all("/<img[^>]*src=[\"|'|\s]{0,}(https:\/\/([^>]*))(\"|'|\s)/isU",$body,$img_array_https);
preg_match_all("/.*background[^;\"]+url\(([^\)]+)\).*/isU",$body,$bgimg_array);
$img_array = array_unique($img_array[1]); 
$bgimg_array = array_unique($bgimg_array[1]); 
$img_array_https = array_unique($img_array_https[1]); 
$img_array=array_merge_recursive($img_array,$bgimg_array,$img_array_https);
第二步:
PHP
if(!preg_match("#^http:\/\/#i", $value))
{
continue;
}
这一段改为:
PHP
if(!preg_match("#^http:\/\/#i", $value)&&!preg_match("#^https:\/\/#i", $value))
{
continue;
}
搞定,这样发文章就可以快乐的把https的远程图片也本地化了。
如没特殊注明,文章均为狐灵科技原创,转载请注明   "织梦DEDECMS后台编辑器如何远程保存微信公众号/新浪博客图片到本地?
多一份免费策划方案,总有益处。

请直接添加技术总监微信联系咨询

网站设计 品牌营销

多一份参考,总有益处

联系狐灵科技,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:15082661954 / 大客户专线:15523356218