0

我正在使用 PHP 的 DOMDocument 对象来解析一些 HTML(使用 cURL 获取)。当我通过 ID 获取元素并输出它时,任何空<span> </span>标签都会获得一个附加字符并变为<span>Â </span>.

编码:

<?php
    $document = new DOMDocument();
    $document->validateOnParse = true;

    $document->loadHTML( curl_exec($handle) );
    curl_close($handle);

    $element = $document->getElementById( __ELEMENT_ID__ );

    echo $document->saveHTML(); 
    echo $document->saveHTML($element);
?>

$document->saveHTML()命令按预期运行并打印出整个页面。但是,就像我上面说的,在echo $document->saveHTML($element)命令中将空<span>标签转换为<span>Â </span>.

这发生<span> </span>$element.

在这个过程中(通过 ID 获取元素并输出元素)插入这个额外的字符是什么?我可以解决它,但我对找到根更感兴趣。

4

1 回答 1

0

我可以通过设置页面的字符编码来解决这个问题。我正在获取的页面没有定义的字符编码,我的页面只是一个没有定义标题信息的片段。当我添加

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

问题消失了。

于 2012-11-30T18:44:53.440 回答