Я работаю над этой функцией PHP. Идея состоит в том, чтобы заключить определенные слова, встречающиеся в строке, в определенные теги (как слова, так и теги, заданные в массиве). Это работает хорошо !, но когда эти слова встречаются в связанном тексте или его атрибуте 'src', тогда, конечно, ссылка не работает и наполняется тегами, или генерируются теги, которые не должны быть внутри ссылки. Вот что у меня сейчас:
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);
}
}
Функция в этом примере должна вернуть "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."
Мне бы хотелось, чтобы эта функция замещения работала по всей строке, но не внутри тегов и в ее атрибутах!
(Я хотел бы сделать то, что упомянуто в следующем потоке, просто мне нужно не в javascript, а в PHP: /questions/1666790/how-to-replace-text-not-within-a-specific-tag-in-javascript
)