$text = "
lorem ipsum sit amet pro <a href=\"lorem.html\">lorem ipsum</a> <a href=\"\" title=\"pro lorem sit\">sit</a> amet pro lorem ipsum sit amet pro lorem
ipsum sit amet pro lorem, ipsum sit amet pro lorem. lorem \"lorem\"</p>";
$myLink = "miolink.html";
echo "Text Start: <hr/>\n".$text."\n\n";
$key ="lorem";
$key_tmp ="$1~~$2";
//keyword inside an tag: <tag bla bla keyword bla bla>
$regex1 = "%(<[^>]*?)$key(.*?>)%";
$text = preg_replace($regex1,$key_tmp,$text);
//keyword within an openining and closing tag: <tag>bla bla keyword bla bla</tag>
$regex2 = "%(>[^<]*?)$key(.*?</[a-o,q,r,t-z])%";
$text = preg_replace($regex2,$key_tmp,$text);
$text = str_replace($key, "<a href=\"".$myLink."\" title=\"$key\">$key</a>", $text);
$text = str_replace("~~", $key, $text);
echo "Text End: <hr/>\n".$text."\n\n";