如何将关键字替换为链接,但仅替换<;a>;


How do I replace a keyword with links but only words outside <a>

我有这个文本"嗨,我叫谷歌,看看我的网页"我想用链接代替谷歌,例如谷歌我使用这个php函数str_replace

代码:

<?php
$text = 'hi my name is google check out my page';
echo str_replace ('google' , '<a href="http://google.com/">google</a>' , $text);
?>

这将输出

hi my name is <a href="http://google.com/">google</a>check out my page

如果我再次运行此代码会出现问题输出将重复替换

hi my name is <a href="http://<a href="http://google.com/">google</a>.com/"><a href="http://google.com/">google</a></a>check out my page

我只想替换不在<a> or <img>中的文本有任何帮助请

您可以将str_replace更改为preg_replace。通过这种方式,可以运行regex以确保google之前的值不是/或>。

preg_replace('/(?<!['/>])google/i', '<a href="http://google.com/">google</a>', $text);