带有HTML标签的preg_replace数组?

时间:2013-10-31 21:30:23

标签: php regex

我有一个我转换为数组的字符串。我转换的相同字符串是搜索中与一大块文本中的关键字匹配的关键字。

我想要使用数组,使用其中的关键字将html标签添加到具有相似关键字的文本块中。

例如: 关键词:狗,猫,牛

之前的文字:我有两只狗,四只猫和二十头母牛。

文字后:我拥有两只,四只,二十只奶牛

我所拥有的文本块位于变量中。

但是我不确定我需要什么正则表达式,与preg_replace();一起使用。

<?php
    echo preg_replace($text, <b></b>, $keywords);
?>

我是否正朝着正确的方向前进?

2 个答案:

答案 0 :(得分:2)

创建一个正则表达式,通过将单词与|结合使用,使用替换来匹配任何单词。在替换字符串中,使用$0来引用匹配的文本部分。

$regexp = '/\b(' . implode('|', $keywords) . ').*?\b/i';
echo preg_replace($regexp, '<b>$0</b>', $text);

DEMO

答案 1 :(得分:0)

您可以使用此代码:

echo preg_replace('/\b((?:cat|dog|cow)\S*)/i', `<b>$1</b>`, $keywords);