提问人:gassiopea 提问时间:7/18/2023 最后编辑:Professor Abronsiusgassiopea 更新时间:7/18/2023 访问量:25
在 DOMDcocument 中使用 insertBefore 和 WordPress 响应时编码问题
Problem with encoding when use insertBefore in DOMDcocument with WordPress response
问:
我有一个带有html的php变量,我想对DomDocument进行一些更改,例如插入一个新标签:
$dom->getElementsByTagName('div')->item(0)->insertBefore($new_element, $first_child);
一切正常,但是当存在特殊字符(如à,è,ò)时,响应是类似
我尝试使用经典指令,例如:
<?xml version="1.0" encoding="UTF-8"?> before html content
或DOMDocument('1.0', 'UTF-8')
或utf8_decode()
这解决了所有 html 内容的一般问题,但是当我使用
$dom->getElementsByTagName('div')->item(0)->insertBefore($new_element, $first_child);
它返回这些字符,就像添加的这个新 HMTL 元素一样�
这是我的代码:
$html内容是 WordPress 的回归get_the_content()
$nomiClassi = array('namea', 'nameb');
$dom = new DOMDocument();
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
foreach ($nomiClassi as $nomeClasse) {
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//*[@class='$nomeClasse']");
foreach ($nodes as $node) {
$node->parentNode->removeChild($node);
}
}
$new_element = $dom->createElement('h2', get_the_title() );
$first_child = $dom->getElementsByTagName('div')->item(0)->firstChild;
$dom->getElementsByTagName('div')->item(0)->insertBefore($new_element, $first_child);
$newHtml = utf8_decode($dom->saveHTML($dom->documentElement) );
一些建议?
答: 暂无答案
评论