2011-01-09 14 views
2

hallo ich mache html schürzen mit php dom dokument ich bekomme einige spezielle charatoren in meinem ergebnis wie filtere ich das gleiche ??Wie filtere ich spezielle Charactors beim Putzen?

foreach ($fdats as $fdat) 
{ 
    foreach($fdat->getElementsByTagName('a') as $mdat) 
    { 
       $comb[] = trim($mdat->nodeValue); 
    } 

} 

und die HTML ist so etwas wie dieses

<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> 

das löschte  James ist, und wie kann ich von Â

Antwort

0

loszuwerden sie HTML-Entities genannt. Sie können sie in ihrer wahren Form unter Verwendung der folgenden Funktion konvertieren:

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

auch, &nbsp; wandelt in ASCII-Code 160, der ein Double-Byte-Zeichen ist. Deshalb zeigt es sich als komischer Charakter. Möglicherweise müssen Sie die Funktion iconv() verwenden, wenn Sie Doppelbytezeichen entfernen möchten.

$ text = iconv ("UTF-8", "ISO-8859-1 // IGNORE", $ text);

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

0

Ich glaube, die Â_ ist eine UTF-8 Materialisierung. Die &nbsp; wird das Unicode-Zeichen U+00A0, wenn über DOM-Methoden extrahiert.

Sie können wahrscheinlich utf8_decode() vor dem trim() verwenden, um es loszuwerden. Das sollte es in einen regulären Speicherplatz konvertieren. Hmm, vielleicht nicht. Latin-1 hat seinen eigenen nbsp bei 0xA0. Also besser einen Regex verwenden /\s/U könnte es abdecken.

Verwandte Themen