2

假设我有一个大约 10,000 个单词的 HTML 文本和一个包含大约 10,000 个关键字的列表。我想在文本中找到所有出现的关键字并将它们替换为<span title="a keyword">keyword</span>. 作为一个额外的复杂因素,我不想替换<span>周围已经有 a 的关键词。

在 PHP 中最好、最有效的方法是什么?

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

4

3 回答 3

0

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

于 2012-05-24T16:15:57.493 回答
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);
于 2012-05-24T16:26:49.773 回答
-1

尝试这个:

str_replace('your_string','keyword','<span title="a keyword">keyword</span>')
于 2012-05-24T16:15:10.020 回答