如何在使用它进行一些操作后从对象中删除xml标头标记。 PHP DOM

时间:2011-08-16 10:06:44

标签: php dom

我有这种代码的和平

$doc = new DOMDocument();
$doc->loadHTML($article_header);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {

     if(!$img->getAttribute('class')){
$src = $img->getAttribute('src');
$newSRC = str_replace('/img/', '/mini/', $src);
$img->setAttribute('src', $newSRC);
$article_header = $doc->saveXml();
            }
                    }

使用带有一些文本和图像的$ article_header并在其中进行一些更改可以正常工作。问题是DOM将自己的代码添加到我的$ article_header变量中。有一些XML标题等...

另外,因为它是一个文章编辑器,我可以编辑我的文章10次,每次我运行这个脚本时都会添加一些xml语句,所以最后几次运行后我的mysql数据库中的$ article_header看起来像这样

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<!--?xml version="1.0" standalone="yes"?-->
<html><body><p>&#xA0;</p>&#xD;
<p>&#xA0;</p>&#xD;
<!--?xml version="1.0" standalone="yes"?-->&#xD;
<p>&#xA0;</p>&#xD;
<p>&#xA0;</p>&#xD;
<!--?xml version="1.0" standalone="yes"?-->&#xD;
<p>1<img src="sources/public/users/103/articles/2011-06-11/3/img/1170x1600.gif" alt="" width="528" height="722.0512820512821"/>f</p>&#xD;
<!--?xml version="1.0" standalone="yes"?--></body></html>

问题是我怎样才能摆脱所有这些让我遇到问题的额外数据,因此我的文章开始越来越低,因为这段代码会产生多个<br>效果。

1 个答案:

答案 0 :(得分:1)

您应该使用saveHTML()代替saveXML()

详情 - http://php.net/manual/en/domdocument.savehtml.php