在文本中查找和替换大量关键字

时间:2012-05-24 16:10:23

标签: php dom text replace

假设我有大约10,000个单词的HTML文本和大约10,000个关键字的列表。我想在文本中找到所有关键字,并将其替换为<span title="a keyword">keyword</span>。作为一个额外的复杂功能,我不想替换已经有<span>的关键词。

在PHP中执行此操作的最佳,最有效的方法是什么?

我显然可以为每个关键字构建一个正则表达式并按顺序运行它们,但这似乎是一个复杂的噩梦。

3 个答案:

答案 0 :(得分:0)

你可以使用Preg_Replace 它是一个非常强大的工具,有一个美好的一天。

答案 1 :(得分:0)

可能是这样的吗?我不确定

$str          = "this is keyword say this is also keyword say say";
$newtext      = wordwrap($str, 18, "\n", true);
$patterns[0]  = '/keyword/';
$patterns[1]  = '/say/';
$replacements = array();

foreach($patterns as $k=>$v)
{
  $replacements[] = "<span title=\"a ".str_replace("/","",$v)."\">".str_replace("/","",$v)."</span>";
}

echo preg_replace($patterns, $replacements, $str);

答案 2 :(得分:-1)

试试这个:

str_replace('your_string','keyword','<span title="a keyword">keyword</span>')