Umlaute umwandeln | Funktion geht nicht

matzseesi

Erfahrenes Mitglied
Hi Leute

Ich sitze jetzt schon seit ungefähr einer Stunde an einer Funktion, die einfach nicht funktionieren will.
Ich bekomme von einem Post die Variable $staat (aus einem select Feld). In dieser Variable steht z.b.: österreich drinnen. Dh, das ö ist im value Parameter dieses option Feldes mit ö geschrieben (der dazugehörige HTML Code halt).

Wenn ich nun die Variable mit $_POST['xxx'] hole dann steht schon mal statt dem HTML Code der Umlaut drinnen. Kein Problem, dachte ich mir, also wandle ich diesen Umlaut mit einer Funktion halt noch einmal in den HTML Code um.

Folgende Funktion sollte mir dabei helfen:

PHP:
function replacestring( $char )
{
  // Sonderzeichen wie Umlaute
  $array_1 = array("ä","ü","ö","Ä","Ü","Ö","ß","®");
  $array_2 = array("ä","ü","ö","Ä","Ü","Ö","ß","®");
  for( $x = 0; $x < 8; $x++ )
  {
    $char = str_replace( $array_1[$x], $array_2[$x], $char );
  }
  $char=stripslashes($char);
  $char=nl2br($char);
  return $char;	
}

Doch leider will die Funktion nicht! Wenn ich dann den Return mit echo ausgebe, kommt weiterhin ein Umlaut daher und in der Datenbank steht in Folge auch dieser Umlaut drinnen (was ich nicht will)....

Es ist sicher nur ein kleiner Fehler aber ich komm einfach nicht drauf!

Danke für eure Hilfe...

Gruß Matthias
 
Was kommt denn da raus?
function replacestring( $char )
{
// Sonderzeichen wie Umlaute
$array_1 = array("ä","ü","ö","Ä","Ü","Ö","ß","®");
$array_2 = array("&auml;","&uuml;","&ouml;","&Auml;","&Uuml;","&Ouml;","&szlig;","&reg;");
for( $x = 0; $x < count($array_1); $x++ )
{
$char = str_replace( $array_1[$x], $array_2[$x], $char );
echo $char;
}
$char=stripslashes($char);
$char=nl2br($char);
return $char;
}
 
Zurück