我需要用锚标记替换所有关键字。但如果它在标题内,如标题,元,粗体,强等等,请不要替换它。
$keyword = "test";
$pattern = "/".$keyword."(?!([^<]+)?>)/";
$replacement = "<a style='color:red;'>".$keyword."</a>";
$text = preg_replace( $pattern, $replacement, $text );
echo $text;
它正在替换所有单词。例如:标题标签带有“标题测试标题”。如果它带有上面的文字,请不要更换它。是否可以创建一个数组模式来检查关键字是否在html标记内,如果是,那么就不要替换它。任何人都可以帮助我。如果有任何其他选择,请给我。 谢谢, 迪克森。
答案 0 :(得分:2)
是。你可以这样做:
str_replace(
array("meta", "title", "head"),
array("<a style='color:red;'>meta</a>", "<a style='color:red;'>title</a>", "<a style='color:red;'>head</a>"),
$string
);
如果关键字很少,这是最简单的方法之一。您不需要DOM Parser或Regex。