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-документы.