记一次织梦图片本地化远程图片无法下载的问题

时间:12-07-22 栏目:织梦 作者:kyle 评论:0 点击: 6,360 次

成都SEO小五的另一个旅游小站四川旅游网www.lvxingnet.com是关于四川旅游景点相关的一个网站。

在网站建设的过程中从其它地方复制了不少攻略游记然后伪原创做为文章的来源。

由于请了一个编辑在处理文章问题,所以遇到了一个巨大的问题,我也是多天以后才发现的。

图片全部没有本地化,全是采用别人网站的远程图片。这是不能容忍的。

2

文章全部没有图片,但是里面是有图片的没有生成缩略图,也没有下载回来。

1

而且造成了无法提取缩略图的功能。造成了巨大的不便。

今天周末下定决心解决这个Bug。开始我认为是下载的问题,发现Firefox是可以正常的,

由于织梦编辑文章和添加文章用了不同的文件来处理。编辑文章用的是article_edit.php,上传新文章用的是article_add.php。

我就去里面找处理图片的部份,看是不是这部份出问题。

找了半天没有头绪。

后来在一个网站发现一个问题。标题是织梦不能采集新浪的图片,因为新浪的图片是没有后缀名的。织梦后台只能匹配gif,jpg,png这3种。

要想绕过新浪图片采集问题,就要修改系统默认的正则匹配,让它能匹配到新浪的图片再做本地化处理。

终于发现本站的问题了。

所有的图片原来是jpeg格式的。

这不是太坑爹了吧。原来只支持3种格式,不能下载jpeg原来是这个原因。还好仔细发现了这个问题。

现在来修改吧。

打开

DEDECMS文件 /dede/inc/inc_archives_functions.php,找到函数

function GetCurContentAlbum($body, $rfurl, &$firstdd)//获得HTML里的外部资源,针对图集,这个可以不改的。不过为了以防万一也改了

/获得文章body里的外部资源

function GetCurContent($body,&$litpic,$autolitpic)

//获得文章body里的外部资源

function GetCurContent($body)

为了安全,我是把所有

preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\.(gif|jpg|bmp|png))/isU",$body,$img_array);

中的代码全部加成了

preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\.(gif|jpg|bmp|png|jpeg))/isU",$body,$img_array);

这样就可以匹配jpeg格式的图片了。

好了,来看看效果。

4

OK,成功!现在要做的就是把所有文章,打开再保存一次。还好,这个步骤不是特别麻烦。

成都SEO小五后记:

网上说的大多数织梦保存远程图片失败织梦无法下载远程图片到本地都是讲的服务器的问题。说是函数fsockopen没开放。其实我们要仔细来对比一下,如果有些图片能下载,有些不能下载,就很明显不是这方面的问题。而且采集的图片jpeg格式应该也是非常普遍的。遇到问题还是要仔细呀。

成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: 记一次织梦图片本地化远程图片无法下载的问题,3Q

记一次织梦图片本地化远程图片无法下载的问题:等您坐沙发呢!

来给哥评论评论


------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。

常用工具

赞助广告

来看过哥的人