ecms批量清除无法远程保存的失效外链图片

in Archives with 0 comment

我们在建站或者写博客的时候,最好将图片本地化,除非是自建的图床,否则外链图片的稳定性无法掌控。纵观很多老站,多年前老文章内的外链图片都已失效,挺可惜的。

ecms发布文章时可以勾选“远程保存图片”,实现图片本地化;这样文章发布以后,文章内容页<img>标签的src都是站内的url。
但当远程图片已经失效,文章发布以后,<img>标签会保持原来的外部url;用户浏览页面时会显示一张裂开的失效图片,影响体验。

我们无法恢复失效的外链图片,但可以删除ecms数据库中的失效<img>标签。

考虑从正则替换入手来实现上述目的,因为成功保存到本地的远程图片<img>标签的src都已经变为站内链接,例如:

<img src="http://img.d9.ee/..." />

因此我们只需要批量替换数据库中src链接不包含“img.d9.ee”的<img>标签为空,即可批量删除失效的外链<img>

但由于D9对正则替换不是很熟悉,未能实现上述思路。

借助ecms的“批量替换字段值功能”,D9最终实现了失效<img>标签的批量清除,方法比较笨,但简单有效,步骤如下:

批量替换正常的<img>标签

在ecms后台,栏目--其他相关--批量替换字段值,选择替换表、操作栏目、替换字段后,将原字符:

img src="http://img.d9.ee

替换为新字符:

simg src="http://img.d9.ee

注意:这里选项设置中的“正则替换”需要勾选,替换字符中不能带尖括号“<”,否则会替换失败。

批量替换所有的<img>标签

替换方法同上,原字符:

<img src="*" />

新字符空白。

恢复正常的<img>标签

替换方法同上,原字符:

simg src="http://img.d9.ee

替换为新字符:

img src="http://img.d9.ee

重新生成内容页

批量替换完成以后,别忘了去ecms数据更新中心刷新相关的信息内容页面。

Comments are closed.