Sonderzeichen ersetzen

mur

Grünschnabel
ich habe ne Function geschrieben die die Sonderzeichen in einem String ersetzen soll! Ich habe aber das Problem das er die Sonderzeichen ersetzt. jedoch meine normalen Buchstaben auch!?!

er geht also nicht in den case Fall für die Buchstaben weiss einer wieso?

PHP:
      for($x=0;$x<strlen($p_name)-1;$x++){
         switch($p_name[$x])
         {
          case "Ü":
                $p_name = ereg_replace("Ü","Ue",$p_name);
                $x=$x+1;
                break;
          case "Ä":
               $p_name = ereg_replace("Ä","Ae",$p_name);
                $x=$x+1;
                break;

          case "^[a-z]+$":
               echo "nix tauschen";
                break;
          case "^[A-Z]+$":
               echo "nix tauschen";
                break;
          default:
               $p_name = eregi_replace($p_name[$x]," ",$p_name);
                  }
            }
 
Original geschrieben von Sir Robin
.. aber ansonsten stimmt deine Case-Anweisung nicht...du musst zumindest sowas wie ereg oder so verwenden, um Zeichenräume zu verwenden...

^^da stand die Antwort zum anderen...sprich: Prüfe mit ereg oder einer ähnlichen Funktion, ob die Bedingung TRUE ist, sprich ob der Zeichenraum zum Zeichen passt, und setz das als case-Bedingung...

...alternativ würde ich einfach ein Array mit allen zu ersetzen Zeichen machen, und ein anderes mit dem Ersetz-Zeichen...und dann einfach das eine durchgehen und mit str_replace und dem anderen Array die Zeichen ersetzen...
 
Oder einfach mehrere str_replace hintereinander.

Bem: Ich würde in diesem Fall dringenst von ereg_replace abraten. Wenn, dann schon preg_replace. Wenn aber keine RegExp benötigt werden, ist str_replace die schnellste Funktion zum erstenzen von Zeichen/Strings.
 
Zurück