我想在将消息插入数据库之前删除电子邮件的签名。签名包含在一个特殊的标签xxx中,以帮助删除。php删除2个标签之间的空白
以下仅适用于签名被压缩而没有空白分布在各行上的情况。
$msgeBody = preg_replace('#(<signature>).*?(</signature>)#', '$1$2', $msgeBody);
我试图在网上找到这些标记之间的第一去除空白,应用上述前行的可能性。但没有成功。怎么做?下面是示例文本遍布行: -
<signature><p><span style="font-weight: bold;">Gerald Sugan</span><br>
Travel Consultant<br>
<span style="font-size: 18px; font-family: 'Courier New'; font-weight: bold;">Sugan Enterprises Inc</span></p>
</signature>
的php preg_replace regex that matches multiple lines解决的办法是不重复的。我看不到如何在这里应用这些解决方案。我认为下面的解决方案是不同的。
请勿使用'。+?'使用'[\ S \ s] +?',它将搜索非空白字符和空白字符。见这里https://regex101.com/r/wS0vX9/1 – Terminus
肯尼,不知道如何适应第一次使用preg链接。试试这些没有成功:$ msgeBody = preg_replace('#()/.*/( )#','$ 1 $ 2',$ msgeBody); $ msgeBody = preg_replace('#()/ [0-9] $/m( )#','$ 1 $ 2',$ msgeBody); –
Paul
Re终点,伟大的工作!我留下了签名标签,里面什么也没有,但可以轻松删除。感谢您创建示例。您是否想将解决方案复制到单独的答案中,以便我可以正确输入? – Paul