嗨我正在用php dom文件进行html追求 我在结果中得到一些特殊的字符,如何过滤相同的?
foreach ($fdats as $fdat)
{
foreach($fdat->getElementsByTagName('a') as $mdat)
{
$comb[] = trim($mdat->nodeValue);
}
}
,HTML就是这样的
<div class="content1" id="user" style="width: 47%; margin-right: 20px;">
<div class="ad first_row">
<p class="ad" style="width: 70%;">
<a href="/site/users"><img class="dynamic-icon"> James</a>
</p>
输出为Â James
,如何摆脱Â
答案 0 :(得分:0)
他们被称为html实体。您可以使用以下函数将它们转换为真实形式:
http://us.php.net/manual/en/function.html-entity-decode.php
同样,
转换为ascii代码160,这是一个双字节字符。这就是为什么它表现为一个奇怪的角色。如果要删除双字节字符,可能需要使用iconv()函数。
$ text = iconv(“UTF-8”,“ISO-8859-1 // IGNORE”,$ text);
答案 1 :(得分:0)
我相信Â_
是UTF-8的实现。通过DOM方法提取时,
成为unicode字符U+00A0
。
您可以在utf8_decode()
之前使用trim()
来摆脱它。 那应该将它转换为常规空间。嗯,也许不是。 Latin-1拥有自己的0xA0。因此,最好使用正则表达式/\s/U
覆盖它。