打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用map全量替换html代码中图片scr的值

需求:微信公众号保存永久图文素材,图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。所以需要将本地图片url替换成微信的url。数据库分别保存替换前后的内容。此处省略微信相关内容

例如有一段html代码:

<p>      故事叙述一名贫穷的年轻混混,名叫<em>阿拉丁</em>。他住在中国西部,后来受一名来自马格里布的魔法师之邀(他冒充为<em>阿拉丁</em>的叔叔),前往一个设有陷阱的洞穴中拿取一只神奇的油灯。魔法师正要进一步利用<em>阿拉丁</em>的时候,<em>阿拉丁</em>发现他被困在洞穴里。幸运的是,<em>阿拉丁</em>还留着魔法师借给他的一只魔戒。<em>阿拉丁</em>绝望地摩擦双手,正巧擦到了戒指,迸发出一个精灵。这个精灵还带他返家...

</p><p><img src="D:/res\imagemater\50a1774011ae435eaa15aa9dde994d65.jpg" style="max-width:100%;"></p><p>       而阿拉丁则带回了油灯。正当他母亲要清理油灯的时候,突然间油灯迸发出一个威力更强大的精灵,随时等待主人的使唤。在精灵的帮助下,阿拉丁变得有钱有势,还娶了公主巴德罗巴朵尔。精灵更为阿拉丁建造一座美轮美奂的宫殿,甚至比皇帝的皇宫还要壮丽。

</p><p><img src="D:/res\imagemater\90dabba5e14d49158d8dbed44babb7f8.png" style="max-width:100%;"></p>
 

第一步:获取该段html中所有src的标签

  1. /**
  2. * 解析html代码,获取图片的地址集合
  3. */
  4. private static Map<String, String> getImages(String localContent)
  5. {
  6. Map<String, String> imgUrls = new HashMap<>();
  7. String img = "";
  8. String regEx_img = "(<img.*src\\s*=\\s*(.*?)[^>]*?>)";
  9. Pattern p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
  10. Matcher m_image = p_image.matcher(localContent);
  11. while (m_image.find())
  12. {
  13. img = m_image.group();
  14. Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
  15. while (m.find())
  16. {
  17. imgUrls.put(m.group(1), "");
  18. }
  19. }
  20. return imgUrls;
  21. }

第二步:找到每个src所在位置替换新的值

  1. Map<String, String> images = getImages(localContent);
  2. Iterator<String> keys = images.keySet().iterator();
  3. while (keys.hasNext())
  4. {
  5. key = keys.next();
  6. images.put(key, 新的值);
  7. }
  8. if (MapUtils.isNotEmpty(images))
  9. {
  10. entrys = images.entrySet().iterator();
  11. while (entrys.hasNext())
  12. {
  13. entry = entrys.next();
  14. // 置换后的内容
  15. localContent = localContent.replace(entry.getKey(), entry.getValue());
  16. }
  17. }

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
最新滚动图片代码大全及示例(超震撼)
怎样制作回复移动文字和移动图片(代码)
【动画代码】动画人景篇
日志导航图片代码【原创】
热诚欢迎各位来宾
心心相印
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服