Regex, добавьте атрибут в тег в html (php)
Я не могу это понять, я ищу некоторое регулярное выражение, которое добавит atttribute к тегу html.
Например, скажем, что у меня есть строка с <a>
в ней, а для <a>
требуется добавленный к ней атрибут, поэтому <a>
добавляется style="xxxx:yyyy;"
. Как бы вы это сделали?
В идеале он добавит любой атрибут к любому тегу.
Я прошу большую часть регулярного выражения php +, должен ли я создавать класс, чтобы делать что-то подобное?
Ура!
Ответы
Ответ 1
Было сказано миллион раз. Не используйте регулярное выражение для разбора HTML.
$dom = new DOMDocument();
@$dom->loadHTML($html);
$x = new DOMXPath($dom);
foreach($x->query("//a") as $node)
{
$node->setAttribute("style","xxxx");
}
$newHtml = $dom->saveHtml()
Ответ 2
Здесь используется regex:
$result = preg_replace('/(<a\b[^><]*)>/i', '$1 style="xxxx:yyyy;">', $str);
но Regex не может анализировать искаженные HTML-документы.