Hi, I am working on this PHP function. The idea is to wrap certain words occuring in a string into certain tags (both, words and tags, given in an array). It works OK!, but when those words occur into a linked text or its 'src' attribute, then of course the link is broken and stuffed with tags, or tags that should not be inside a link are generated. This is what I have now:
function replace() {
$terminos = array (
"beneficios" => "h3",
"valoracion" => "h2",
"empresarios" => "h2",
"tecnologias" => "h2",
"...and so on..." => "etc",
);
foreach ($terminos as $key => $value)
{
$body = "string where the word empresarios should be replaced; but the word <a href='http://www.empresarios.com'>empresarios</a> should not be replaced inside <a> tags nor in the URL of their 'src' attribute.";
$tagged = "<".$value.">".$key."</".$value.">";
$result = str_replace($key, $tagged, $body);
}
}
The function, in this example, should return "string where the word <h2>empresarios</h2> should be replaced; but the word <a href='http://www.empresarios.com'>empresarios</a> should not be replaced inside <a> tags nor in the URL of their 'src' attribute."
I'd like this replacement function to work all throught the string, but not inside tags nor in its attributes!
(I'd like to do what is mentioned in the following thread, it's just that it's not in javascript what I need, but in PHP: /questions/1666790/how-to-replace-text-not-within-a-specific-tag-in-javascript
)