解析html并用锚标记替换单词

时间:2013-06-11 04:46:26

标签: php

我需要用锚标记替换所有关键字。但如果它在标题内,如标题,元,粗体,强等等,请不要替换它。

$keyword = "test";
 $pattern = "/".$keyword."(?!([^<]+)?>)/";
 $replacement  = "<a  style='color:red;'>".$keyword."</a>";         
 $text     = preg_replace( $pattern, $replacement, $text );  
 echo $text;

它正在替换所有单词。例如:标题标签带有“标题测试标题”。如果它带有上面的文字,请不要更换它。是否可以创建一个数组模式来检查关键字是否在html标记内,如果是,那么就不要替换它。任何人都可以帮助我。如果有任何其他选择,请给我。 谢谢, 迪克森。

1 个答案:

答案 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。