这是一段代码
$doc = new DOMDocument();
$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
进入$imgs
进入DOM img标记。现在我想通过添加一些类来改变原始的img标签。
如果$article_header
是这样的话:
"some text"...<img src = 'http://some_source'>...some text...
现在我希望它成为这个:
"some text"...<img class = 'someclass' src = 'http://some_source'>...some text...
更新
我再说一遍。起始变量为$article_header
。
因此,必须对其进行所有更改。
使用我的代码,我只需在$article_header
中搜索img标签,找到它们将它们放入一些变量并更改它们就可以了,但是如何将所有更改都放回$article_header
???
答案 0 :(得分:15)
在你的foreach循环中,拨打$img->setAttribute('class', 'someclass');
。这应该可以解决问题。请点击http://docs.php.net/manual/en/domelement.setattribute.php
然后,您需要使用$article_header = $doc->saveXml();
保存修改后的文档。
答案 1 :(得分:10)
如果你知道该元素已经没有类集,你可以使用DOMElement::setAttribute()
,例如:
$img->setAttribute('class','someClass');
如果您不确定该元素是否已经有类集,那么您应首先执行getAttribute(),然后将您的类添加到类列表中。