hawkmaster: Mehrere Sonderzeichen in String ersetzen?

Beitrag lesen

Hallo zusammen,

In einer Textdatei kommen deutsche Sonderzeichen kodiert vor, z.b.
Endgr<F6><DF>e  = Endgröße

Ich möchte gerne die kodierten Buchstaben < > umwandeln. Also das tatsächlich
"Endgröße" gespeichert werden kann.

Ich versuche es so;

  
if (preg_match_all("#<(.*?)>#", $string, $contents)){  
 foreach($contents[1] as $specialchar){  
   echo "gefunden wurde das Sonder-Zeichen- " .$specialchar."<br>";  
   $dez = hexdec($specialchar);  
   $special_char = preg_replace("#<($specialchar)>#",chr($dez),$string);  
 }  
  echo "ergebnis ist $special_char <br>";  
}  

so klappt es wenn nur einmal < > im String vorkommt, nicht aber wie im Beispiel zweimal < >  < > weil ja nur immer das letzte Zeichen das in der foreach Schleife gefunden wird, ersetzt wird.

Hat jemand eine Idee wie man das besser machen kann?

vielen Dank und viele Grüße
hawk