【发布时间】:2017-03-04 03:57:23
【问题描述】:
我们在我们的网站上使用 CMS。许多用户已将 HTML 内容添加到格式奇怪的数据库中。例如,将他们所有的 HTML 放在一行中:
<h1>This is my title</h1><p>First paragraph</p><p>Second paragraph</p>
当然,这会在浏览器中正确呈现。但是,我正在用 PHP 编写一个脚本,将这些数据加载到 DOMDocument 中,如下所示:
$doc = new DOMDocument();
$doc->loadHTML($row['body_html']);
var_dump($doc->documentElement->textContent);
这显示为:
This is my titleFirst paragraphSecond paragraph
如何让documentElement 返回innerText,而不是textContent?我相信innerText 会返回一个带换行符的字符串。
【问题讨论】:
-
您应该遍历 DomDocument 中的所有元素并逐项获取文本并手动插入空格。例如,看看here。 DomDocument 本身不知道它应该在哪里,除了空格。