我有一個返回saveHTML()類的函數。在類saveHTML()中回覆多個函數後,它會重複某些HTML。我最初通過saveHTML($ node)解決了這個問題,但現在看起來並不是一種選擇。
我不知道saveHTML($ domnode)僅在PHP 5.3.6中可用,我無法控制服務器上傳文件,所以現在我必須使它與PHP 5.2兼容。
爲了簡便起見,並且只顯示我的問題,它看起來與此類似:
<?php
class HTML
{
private $dom;
function __construct($dom)
{
$this->dom = $dom;
}
public function create_paragraph()
{
$p = $this->dom->createElement('p','Text 1.');
$this->dom->appendChild($p);
return $this->dom->saveHTML();
}
public function create_paragraph2()
{
$p = $this->dom->createElement('p','Text 2.');
$this->dom->appendChild($p);
return $this->dom->saveHTML();
}
}
$dom = new DOMDocument;
$html = new HTML($dom);
?>
<html>
<body>
<?php
echo $html->create_paragraph();
echo $html->create_paragraph2();
?>
</body>
</html>
輸出:
<html>
<body>
<p>Text 1.</p>
<p>Text 1.</p><p>Text 2.</p>
</body>
我有一個想法,爲什麼它的發生,但我不知道如果不使用saveHTML($ domnode)就不重複。我如何使它在PHP 5.2中正常工作?
這裏是什麼,我希望能夠做一個例子:
http://codepad.viper-7.com/o61DdJ
, 'DOMDocument'可能是j的錯誤工具OB。如果你想驗證輸出,你可以使用XMLWriter。 XMLWriter在5.2中可用。見http://www.php.net/manual/en/book.xmlwriter.php – jmz 2011-06-04 15:58:15