gpt4 book ai didi

php - PHP 5.2 中的 DOMDocument::saveHTML($domnode)?

转载 作者:可可西里 更新时间:2023-11-01 12:51:03 27 4
gpt4 key购买 nike

我在一个返回 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

最佳答案

我所做的只是将节点保存为 XML。语法上有一些差异,但对于大多数用途而言,足够好:

return $dom->saveXml($node);

关于php - PHP 5.2 中的 DOMDocument::saveHTML($domnode)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com