【发布时间】:2011-06-28 16:26:26
【问题描述】:
我使用此代码从文本中删除所有链接:
$string = preg_replace("/\])>([^)\/i", "$2", $string);
但我想以某种方式不删除指向某个域的链接,例如 google.com 所以,我想删除所有其他 URL,但要保留一个域的链接。
如何在 preg_replace 中添加一些条件?
【问题讨论】:
标签: php preg-replace
我使用此代码从文本中删除所有链接:
$string = preg_replace("/\])>([^)\/i", "$2", $string);
但我想以某种方式不删除指向某个域的链接,例如 google.com 所以,我想删除所有其他 URL,但要保留一个域的链接。
如何在 preg_replace 中添加一些条件?
【问题讨论】:
标签: php preg-replace
条件需要使用preg_replace_callback()。
但您可能会更好地解析 HTML 和操作 DOM。原因是,你的正则表达式总会有一些缺陷。例如,当前的不会阻止某人添加这样的链接:
<a href=evil><b>foo</b></a >
【讨论】:
var_dump() 查看输入参数:它是一个包含捕获的数组,很像preg_match() 中的$match 参数。