PHP字符串操作:将html类附加到字符串

Ale*_*lex 6 html php string

我有这个字符串:

$str = '<div class="defaultClass">...</div>';
Run Code Online (Sandbox Code Playgroud)

如何在'defaultClass'旁边添加'myClass'?

Gor*_*don 8

使用原生DOM:

$dom = new DOMDocument;
$dom->loadHTML('<div class="defaultClass">...</div>');
$divs = $dom->getElementsByTagName('div');
foreach($divs as $div) {
    $div->setAttribute('class', 
        $div->getAttribute('class') . ' some-other-class');
}

echo $dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)


Emi*_*röm 7

"class"属性只是一个空格分隔的类列表.

$str = '<div class="defaultClass myClass">...</div>';
Run Code Online (Sandbox Code Playgroud)

或者你可以像这样一起破解它:

$str = '<div class="defaultClass">...</div>';
$str = str_replace('class="defaultClass', 'class="myClass defaultClass', $str);
//Result: <div class="myClass defaultClass">...</div>
Run Code Online (Sandbox Code Playgroud)

或者使用正则表达式:

$str = '<div class="defaultClass">...</div>';
$str = preg_replace(':class="(.*defaultClass.*)":', 'class="\1 myClass"', $str);
//Result: <div class="defaultClass myClass">...</div>
Run Code Online (Sandbox Code Playgroud)

其他解决方案包括使用XML将其添加到DOM节点,这可能不太容易出错,但更先进,资源更重.

  • 我猜测他正在问如何以编程方式进行:-) (2认同)