我在一个返回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>
Run Code Online (Sandbox Code Playgroud)
输出:
<html>
<body>
<p>Text 1.</p>
<p>Text 1.</p><p>Text 2.</p>
</body>
Run Code Online (Sandbox Code Playgroud)
我知道它为什么会发生但我不知道如何在没有saveHTML($ domnode)的情况下重复它.如何使用PHP 5.2使其正常工作?
这是我希望能够做的一个例子:
irc*_*ell 10
我所做的只是将节点保存为XML.语法有一些差异,但对于大多数用途来说它足够好:
return $dom->saveXml($node);
Run Code Online (Sandbox Code Playgroud)