php - DOMDocument 中的 nodeValue 在 PHP 中返回奇怪的字符

标签 php character-encoding domdocument nodevalue

所以我尝试解析 HTML 页面并使用 <p> 查找段落( get_elements_by_tag_name('p'); )

问题是当我使用$element->nodeValue时,它返回奇怪的字符。该文档首先加载到 $html使用curl然后将其加载到DOMDocument中。

我确信这与字符集有关。

以下是响应示例:“aujourdà€™hui”。

提前致谢。

最佳答案

我遇到了同样的问题,现在注意到 loadHTML() 不再需要 2 个参数,所以我必须找到不同的解决方案。使用 DOM 库中的以下函数,我能够从 HTML 内容中删除时髦的字符。

private static function load_html($html)
{
    $doc = new DOMDocument;
    $doc->loadHTML('<?xml encoding="UTF-8">' . $html);

    foreach ($doc->childNodes as $node)
        if ($node->nodeType == XML_PI_NODE)
            $doc->removeChild($node);

    $doc->encoding = 'UTF-8';

    return $doc;
}

关于php - DOMDocument 中的 nodeValue 在 PHP 中返回奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024993/

相关文章:

php - 使用 CSS 设置 PHP 样式

php - 在 PHP 中显示数组值

html - 将希伯来语(或西里尔语)字符复制/粘贴到 Notepad++ 或其他编辑器中

xpath - 删除空节点,但保留带有图像标签的节点

php - 创建多维数组的算法

php - foreach 语句和设置在循环外部使用的变量

java - jersey web 服务 json utf-8 编码

Android 浏览器无法正确处理新行 (ASCII x0A) 字符

php - 尝试使用 PHP 和 XPath 删除目录中的 ID 匹配文件

php - CakePHP Xml 实用程序库触发 DOMDocument 警告