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