Php 如何封装数据库HTML响应

Php 如何封装数据库HTML响应,php,html,Php,Html,在一个PHP函数中,我从MySQL数据库中随机获取HTML块,这些HTML块的格式可能好,也可能不好。例如: <table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Heres something to display<br><br>Thanks,<br><br> 这里有一些东西

在一个PHP函数中,我从MySQL数据库中随机获取HTML块,这些HTML块的格式可能好,也可能不好。例如:

<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Heres something to display<br><br>Thanks,<br><br>
这里有一些东西要展示

谢谢,

然后,我从PHP函数返回这段HTML,并将返回到页面上的内容回显到
持有者中


我遇到的问题是,上面的内容显示正确,但由于它没有结束标记,因此在显示DOM时会对其造成严重破坏。我无法控制HTML是如何形成的,因为它来自随机的电子邮件响应。我的问题是,是否有任何方法来封装这段HTML并将其从我的页面的其余部分中删除?除了
之外,我还可以用一些标记来包装这个HTML,以确保无论它的格式有多好,它都会显示出来,但不会与页面的其余部分交互?

您可以限制通过DOM解析器运行它所造成的损害。例如:

libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadXML("<root>".$your_malformed_html."</root>");
$reformatted_html = substr($dom->saveXML(),6,-7);
libxml\u使用\u内部错误(true);
$dom=新的DOMDocument();
$dom->loadXML(“$your\u格式错误的\u html.”);
$reformatted_html=substr($dom->saveXML(),6,-7);

在浏览器中,您想查看一个表,还是因为标记
的HTML差异很大。在上述示例中,可以将其视为纯文本。如果HTML没有完全形成,那么纯文本就可以了,但是如果HTML确实有适当的markkup,我希望它能按预期显示。如果上述不可能,那么只要换行符正确显示,纯文本显示就可以了。感谢您的回复。我是一个新手,还没有使用过DOM解析器,但现在将开始阅读有关它的内容。快速提问:这能保证它不会破坏页面吗?或者这是唯一一种转换为纯文本并去除所有标签的方法?难道不可能封装这段代码以使其远离其余的标记吗?它将您扔给它的东西“转换”为格式良好的XML(而不是HTML,HTML会向它添加
和其他东西)。这将确保它/不应该/破坏页面,但是如果格式太不正确,您可能会得到一个空结果。我会检查它。谢谢