$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($content);
$divs = $dom->getElementsByTagName("div");
foreach ( $divs as $div ) {
if ( $class = $div->attributes->getNamedItem("class") ) {
if ( $class->nodeValue == "simplegalleryholder" )
$div->parentNode->removeChild( $div );
}
}
$content = $dom->saveHTML();
这个简单的代码应该可以帮助我删除
<div class="simplegalleryholder"> .... </div>
从文档中。唯一的问题是,$content包含utf8编码的特殊字符(ąęść等(,这些字符被进程破坏(我得到iÄ™ Å' Å1/4代替(。
我应该如何处理此问题以获得正确的结果?
在构造函数中指定UTF-8
不会使基础 xml 处理库将其处理为 utf8。以下解决方法确实很笨拙,但它的效果相当不错。
$encodingHint = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
$dom->loadHTML($encodingHint . $html);
https://bugs.php.net/bug.php?id=32547
如果您在 Web 浏览器中查看输出,请发送真正的 http 标头,而不是 http-equiv 元标记。这仅供查看。使用 DomDocument 进行处理特别需要元标记。
header('content-type: text/html; charset=utf-8');