PHP正则批量替换文本中图片路径方法!

2021-12-02  本文已影响0人  DragonersLi
富文本编辑器

当我们后台使用这种富文本编辑工具上传图片时,查看源码图片路径如下:
<img src="/uploads/articles/images/20211202/test.png" title="test.png" alt="test.png"/>
前端微信可以查看图片,但是vue打包的app无法查看图片,想到可能是图片路径问题。

后端接口代码修改,把text内容里的图片替换,前面加上cdn域名地址。
发现本地富文本上传是相对路径,有时候网上复制过来的是带域名的绝对路径。这样替换就会有问题了
<img src="/uploads/articles/images/20211202/test.png" title="test.png" alt="test.png"/><img src="htps://www.xxx.com/uploads/articles/images/20211202/test.png" title="test.png" alt="test.png"/>

        $data = Article::field('id,title,intro,img,content,status,create_time')->find();
//未改前的匹配规则
        $data['content'] = preg_replace("/(<img .*?src=\")(.*?)(\".*?>)/is","\${1}".config('app.cdn_qiniu')."\${2}\${3}",$data['content']);
//改进后的匹配规则
        $data['content'] = preg_replace("/(<img .*?src=\")(\/.*?)(\".*?>)/is","\${1}".config('app.cdn_qiniu')."\${2}\${3}",$data['content']);
        

上一篇下一篇

猜你喜欢

热点阅读