我正在使用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获取元素并输出元素)是插入这个额外的角色吗?我可以解决它,但我更感兴趣的是根
答案 0 :(得分:0)
我能够通过设置页面的字符编码来解决问题。我提取的页面没有定义的字符编码,我的页面只是一个没有定义标题信息的片段。当我添加
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
问题消失了。