Jump to content

preg_replace that ignores content inside a, img and other specified tags


adrianbj

Recommended Posts

I am creating automated mouseover tooltips for definitions of words in a glossary database. The problem is that I can't figure out how to not replace the word when it appears in hyperlinks, img and various heading tags.

 

I have populated an array with all the words and their definitions - $glossary

 

What I have at the moment is a simple str_replace, because I actually have no idea how to start this preg_replace.

 

	foreach($glossary as $glossary_word => $glossary_definition){
	$content = str_replace($glossary_word,'<a href="javascript:;" style="cursor:help;color:#BF601A;" onmouseover="Tip(\''.$glossary_definition.'\')" onmouseout="UnTip()">'.$glossary_word.'</a>',$content);
}

 

Would be great if I could populate an array of tags that would be ignored when doing the replace ie:

$tags_to_ignore = array('a','img','h1','h2','h3',etc) and somehow include this in the preg_replace.

 

What this would mean is that the function would only add the tooltip to occurrences of the word not in these specified tags.

 

 

Thanks for any thoughts on this.

  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.