我有这种代码的和平
$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> </p>
<p> </p>
<!--?xml version="1.0" standalone="yes"?-->
<p> </p>
<p> </p>
<!--?xml version="1.0" standalone="yes"?-->
<p>1<img src="sources/public/users/103/articles/2011-06-11/3/img/1170x1600.gif" alt="" width="528" height="722.0512820512821"/>f</p>
<!--?xml version="1.0" standalone="yes"?--></body></html>
问题是我怎样才能摆脱所有这些让我遇到问题的额外数据,因此我的文章开始越来越低,因为这段代码会产生多个<br>
效果。
答案 0 :(得分:1)
您应该使用saveHTML()
代替saveXML()