>假设我有一个大约 10,000 个单词的 HTML 文本和一个包含大约 10,000 个关键字的列表。我想在文本中找到我的关键字的所有出现,并将它们替换为<span title="a keyword">keyword</span>
。作为额外的复杂因素,我不想替换已经有<span>
的关键词。
在 PHP 中执行此操作的最佳、最有效的方法是什么?
我显然可以为每个关键字构建一个正则表达式并按顺序运行它们,但这似乎是一场复杂的噩梦。
您可以使用Preg_Replace这是一个非常强大的工具,有一个美好的一天。
可能是这样的?我不确定
$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);
试试这个:
str_replace('your_string','keyword','<span title="a keyword">keyword</span>')