正则表达式,在html(php)中为标签添加属性

时间:2010-10-20 23:13:22

标签: php html regex

我无法弄明白,我正在寻找一些可以为html标签添加一个属性的正则表达式。

例如,假设我的字符串中包含<a>,并且<a>需要添加一个属性,因此<a>添加style="xxxx:yyyy;"。你会怎么做呢?

理想情况下,它会向任何标记添加任何属性。

我问过很多php + regex,我应该建立一个类来做这类事吗?

干杯!

2 个答案:

答案 0 :(得分:19)

据说有一百万次。不要使用正则表达式进行HTML解析。

    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $x = new DOMXPath($dom);

    foreach($x->query("//a") as $node)
    {   
        $node->setAttribute("style","xxxx");
    }
    $newHtml = $dom->saveHtml()

答案 1 :(得分:11)

这是使用正则表达式:

  $result = preg_replace('/(<a\b[^><]*)>/i', '$1 style="xxxx:yyyy;">', $str);

但Regex无法解析格式错误的HTML文档。