2011-01-09 64 views
2

您好我正在做的PHP d d PHP DOM文件 我在我的結果中得到一些特殊的charators如何過濾相同?如何在追求時過濾特殊字符?

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">&nbsp; James</a> 
</p> 

的出來說就是Â James,以及我如何擺脫Â

回答

0

他們被稱爲HTML實體。您可以使用下面的函數把它們轉換成自己的真實形式:

http://us.php.net/manual/en/function.html-entity-decode.php

&nbsp;轉換爲ASCII碼160,這是一個雙字節字符。這就是爲什麼它顯示爲一個奇怪的角色。如果要刪除雙字節字符,則可能需要使用iconv()函數。 $ text = iconv(「UTF-8」,「ISO-8859-1 // IGNORE」,$ text);

http://us.php.net/manual/en/function.iconv.php

0

相信Â_是UTF-8物化。當通過DOM方法提取時,&nbsp;成爲Unicode字符U+00A0

你可以在trim()之前使用utf8_decode()來擺脫它。 這應該把它轉換成一個固定的空間。嗯,也許不是。 Latin-1在0xA0有它自己的nbsp。所以更好地使用正則表達式/\s/U可能會覆蓋它。