我需要用一个锚标签替换所有的关键字。但是如果它在一个标签中,比如title,meta,加粗,强等等,就不要替换它。
$keyword = "test";
$pattern = "/".$keyword."(?!([^<]+)?>)/";
$replacement = "<a style='color:red;'>".$keyword."</a>";
$text = preg_replace( $pattern, $replacement, $text );
echo $text;它正在取代所有的标题,例如:标题标签将带有“words.For test title”。如果它带有类似上面的文本,则不要替换它。有没有可能创建一个数组模式来检查关键字是否在html标记内,如果是,就不要替换it.Can,谁来帮帮我。如果有其他选择,请告诉我。谢谢,迪克森。
发布于 2013-06-11 12:49:55
是。您可以使用以下方式执行此操作:
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解析器或正则表达式。
https://stackoverflow.com/questions/17036661
复制相似问题