我有这个字符串:PHP字符串操作:追加HTML类将字符串
$str = '<div class="defaultClass">...</div>';
我怎么追加“MyClass的”旁边的“defaultClass”?
我有这个字符串:PHP字符串操作:追加HTML类将字符串
$str = '<div class="defaultClass">...</div>';
我怎么追加“MyClass的”旁边的“defaultClass”?
“class”属性只是空格分隔的类列表。
$str = '<div class="defaultClass myClass">...</div>';
或者你也可以一起破解这样的:
$str = '<div class="defaultClass">...</div>';
$str = str_replace('class="defaultClass', 'class="myClass defaultClass', $str);
//Result: <div class="myClass defaultClass">...</div>
或者使用正则表达式:
$str = '<div class="defaultClass">...</div>';
$str = preg_replace(':class="(.*defaultClass.*)":', 'class="\1 myClass"', $str);
//Result: <div class="defaultClass myClass">...</div>
其他解决方案包括使用XML将其添加到DOM节点,这是可能不太容易出错,但更先进,资源更重。
我想冒险猜测他在问如何以编程方式做到这一点:-) – 2010-06-28 11:02:03
谢谢,我用str_replace来做到这一点:P – Alex 2010-06-28 11:14:50
$str = '<div class="defaultClass ' . $myclass . '">...</div>';
这是假设myClass的是可变
我想看看调用SimpleDom系统!
继承人一个小例子!
// Create DOM from string
$html = str_get_html('<div class="defaultClass"><strong>Robert Pitt</strong></div>');
$html->find('div', 1)->class = 'SomeClass';
$html->find('div[id=hello]', 0)->innertext = 'foo';
echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>
随着本地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();
是省略号(...)其实这三个时期或者可能它是任何系列的角色?字符串中的其他内容可能与您的示例有所不同?真的,对你的问题的简单回答只是在defaultClass旁边键入'myClass',但我假设你需要在多个不同的(不可预知的)字符串上执行此操作。 :P – 2010-06-28 11:02:24