PHP上一层>的getElementById代替空添加(PHP DOMDocument->ge

2019-11-01 06:06发布

我使用PHP的DOMDocument对象来解析一些HTML(获取与卷曲)。 当我通过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获取元素和输出元素)什么是插入这个额外的性格吗? 我能解决它,但我更感兴趣的是获得到根。

Answer 1:

我可以通过设置页面的字符编码来解决这个问题。 我被抓取的网页没有定义字符编码,而我的页面只是没有定义的头信息片段。 当我加入

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

问题就消失了。



文章来源: PHP DOMDocument->getElementByID adding  in place of empty