美文网首页
一个?引发的正则表达式bug

一个?引发的正则表达式bug

作者: 鸿雁长飞光不度 | 来源:发表于2020-08-09 22:09 被阅读0次

    公司内部有一个每周发送融资事件动态邮件的功能,因为用户数太多,所以使用了队列异步发送,但是很奇怪有些项目在邮件里面没有显示logo,但是在后台添加的时候,图片预览的时候logo都正常显示了。第一反应,获取图片完整路径的函数一定没有考虑到cli模式下运行的情况,鉴于函数写的太复杂,个人找了半天,终于找到。

            $img = preg_replace('/(https?:)?\/\/(.*).' . $rootDomain . '\//i', '', $img);
    

    主要的原因是$rootDomain在cli模式下是空字符串,然后往这个正则一拼接导致替换了原来错误的数据。
    修复办法很简单,加一个?取消贪婪模式就好。

            $img = preg_replace('/(https?:)?\/\/(.*).' . $rootDomain . '\//i', '', $img);
    

    相关文章

      网友评论

          本文标题:一个?引发的正则表达式bug

          本文链接:https://www.haomeiwen.com/subject/tcmrdktx.html