我使用此代码从文本中删除所有链接:
$ string = preg_replace(“/ \ _] )>([^<] )\< / a> / i”,“$ 2”,$ string);
但我想以某种方式不要剥离指向某个域的链接,例如google.com 所以,我想删除所有其他网址,但要保持与一个域的链接。
如何在preg_replace中添加一些条件?
答案 0 :(得分:2)
您需要使用preg_replace_callback()
作为条件。
但是你可能会更好地解析HTML并操纵DOM。原因是,你的正则表达式总是会有一些缺陷。例如,当前的一个不会阻止某人添加这样的链接:
<a href=evil><b>foo</b></a >