我想用一个单词替换字符串中的链接,并且我有以下代码:
<?php
$replacement = [
'An example cool' => 'http://an-example-cool.com',
'example' => 'http://example.com',
];
$content = "An example cool and a regular example are different.";
foreach($replacement as $find => $repl){
$content = preg_replace("/\b(". $find . ")\b/", "<a href=\"$repl\">$0</a>", $content, 1);
}
echo $content;
这将产生以下结果:
<a href="http://an-<a href="http://example.com">example</a>-cool.com">An example cool</a> and a regular example are different.
如您所见,此结果将替换<a>
标记内的单词,现在我在另一个<a>
标记的href
内有一个<a>
。 / p>
预期结果是:
<a href="http://an-example-cool.com">An example cool</a> and a regular <a href="http://example.com">example</a> are different.
因此,如果单词在<a href="{anything}{word}{anything}</a>"
之内,我需要找到一种使模式不匹配的方法。
有什么主意吗?