gpt4 book ai didi

PHP DOMDocument saveHTML 没有正确编码西里尔字母

转载 作者:搜寻专家 更新时间:2023-10-31 21:21:19 25 4
gpt4 key购买 nike

我使用 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$dom->substituteEntities 的值,它们应该是 UTF-8

关于PHP DOMDocument saveHTML 没有正确编码西里尔字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47397559/

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