我使用preg_replace在段落中自动插入HTML链接。
以下是我目前使用的内容:
$pattern = "~(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))(".preg_quote($find_keyword, '/').")\b~msUi";
$replacement = "<a href=\"http://$kw_url\" title=\"$find_keyword\">\$0</a>";
$article_content = preg_replace($pattern, $replacement, stripslashes($article_content), 1, $added );
除了1个问题外,它很有效:
如果关键字是网址,则不匹配并替换。
如果:$find_keyword="http://www.mysite.com/"
即使它在内容中也不会出现任何匹配。
我已经尝试使用preg_quote转义$ find_keyword,但没有任何不同。
任何正则表达式专家都知道解决方案吗?感谢。
答案 0 :(得分:1)
$ find_keywords中的正斜杠不会被转义,这会破坏模式。
答案 1 :(得分:0)
您可以通过
运行find_keyword$find_keyword=preg_quote("http://www.mysite.com/", '/');