I use DOMDocument
操作 html 和 php 7. 问题是文本在页面上显示良好(西里尔文),但是当我转到“查看 HTML 页面源代码”时,情况不太好。它显示如下:Здесь осн
可能出了什么问题?<meta>
字符集是utf-8。我的代码:
$dom = new DOMDocument();
if (@$dom->loadHTML(mb_convert_encoding("<div>$body</div>", 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD)) {
// https://stackoverflow.com/questions/29493678/loadhtml-libxml-html-noimplied-on-an-html-fragment-generates-incorrect-tags
$container = $dom->getElementsByTagName('div')->item(0);
$container = $container->parentNode->removeChild($container);
while ($dom->firstChild)
$dom->removeChild($doc->firstChild);
while ($container->firstChild )
$dom->appendChild($container->firstChild);
$xpath = new DOMXPath($dom);
$headlines = $xpath->query("//h2");
// some code..
return $dom->saveHTML();
}
问题在于$dom->saveHTML();
,您需要添加根节点作为参数,如下所示:
return $dom->saveHTML((new \DOMXPath($dom))->query('/')->item(0));
突然间,它通过替换以不同的方式呈现页面。如果没有,请仔细检查以下值$dom->encoding
and $dom->substituteEntities
,他们应该阅读UTF-8
and TRUE
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)