dey: Zeichen ersetzen für XSL

Hallo,

ich versuche Zeichen wie ° und ´ aus einenm String zu entfernen.

Mein derzeitger Versuch führt nicht zum Erfolg:

  
// illegale zeichen entfernen  
$array_1 = array('&','Ä','Ö','Ü','ä','ö','ü','ß','\r','\n','°');  
$array_2 = array('&amp;','&#196;','&#214;','&#220;','&#228;','&#246;','&#252;','ss','','<br>','&#176;');  
for($x=0;$x<8;$x++){  
  $in_text = ereg_replace($array_1,$array_2,$in_text);  
}  
$in_text = stripslashes ( $in_text);  

Die Erkennung von ° funktioniert wohl nicht.
Ich habe mein Glück auch hier versucht:
http://pcre.nophia.de/evaluate/b3fd2202673af48054efa17c22018bcb/index.php?PHPSESSID=2296b368ea2cac2c41f11f3b783300e2#output
Das Zeichen wird gefunden. Allerdings finde ich nicht den Hinweis darauf wie.

bydey

--
-- bydey ist die Signatur und Verabschiedung, nicht der Nick --
-- Navigate all your PHP web projects with  PHP Project Browser--
  1. Hallo dey,

    ich versuche Zeichen wie ° und ´ aus einenm String zu entfernen.

    // [...]
      $in_text = ereg_replace($array_1,$array_2,$in_text);
    // [...]

      
    versuch es doch einfach mal mit [str_replace()](http://de.php.net/str_replace), damit hab ich es gerade mal probiert und es funktionierte problemlos.  
      
    Solange Du keine regulären Ausdrücke brauchst empfiehlt es sich ohnehin nicht, eine Funktion zu benutzen, die reguläre Ausdrücke verarbeiten kann, denn diese sind erfahrungsgemäß eher langsamer als simple Stringersetzungen (und außerdem sind die preg\_\*-Funktionen schneller als die ereg\_\*-Funktionen).  
    Wenn Du reguläre Ausdrücke benutzen willst, lies am Besten erstmal durch, wie das funktioniert: [PHP Manual: CXIII. Reguläre Ausdrücke Funktionen (Perl-kompatibel)](http://de.php.net/manual/de/ref.pcre.php).  
      
    Grüße aus Karlsruhe,  
    Götz  
    
    -- 
    Losung für Donnerstag, 1. Juni 2006  
    Das Erdreich erschrickt und wird still, wenn Gott sich aufmacht zu richten, dass er helfe allen Elenden auf Erden. (Psalm 76,9-10)  
    Darin ist die Liebe bei uns vollkommen, dass wir Zuversicht haben am Tag des Gerichts. (1. Johannes 4,17)  
    ([Losungslink](http://www.losungen.de/heute.php))
    
  2. echo $begrüßung;

    // illegale zeichen entfernen
    $array_1 = array('&','Ä','Ö','Ü','ä','ö','ü','ß','\r','\n','°');
    $array_2 = array('&amp;','&#196;','&#214;','&#220;','&#228;','&#246;','&#252;','ss','','<br>','&#176;');
    for($x=0;$x<8;$x++){
      $in_text = ereg_replace($array_1,$array_2,$in_text);
    }

    Funktionen für reguläre Ausdrücke sollte man nur dann verwenden, wenn man mit regulären Ausdrücken arbeitet. Für einfache Stringersetzungen gibt es effizienter arbeitende Funktionen, wie str_replace() und strtr().

    Du solltest dir das Zwischenergebnis jedes Schleifendurchlaufs ansehen, um deinen methodischen Fehler zu erkennen. Durch das richtige Verwenden der oben genannten Funktionen (beachte alle Möglichkeiten der Parameterübergabe) tritt das Problem nicht auf.

    echo "$verabschiedung $name";

    1. Hallo,

      Funktionen für reguläre Ausdrücke sollte man nur dann verwenden, wenn man mit regulären Ausdrücken arbeitet. Für einfache Stringersetzungen gibt es effizienter arbeitende Funktionen, wie str_replace() und strtr().

      Du solltest dir das Zwischenergebnis jedes Schleifendurchlaufs ansehen, um deinen methodischen Fehler zu erkennen. Durch das richtige Verwenden der oben genannten Funktionen (beachte alle Möglichkeiten der Parameterübergabe) tritt das Problem nicht auf.

      Die Schleife war natürlich Quatsch, war noch von der Vorgängerversion.
      Ich hatte das vorher mit einem str_replace versucht, ° wurde aber nicht gefunden.
      Jetzt geht es selsamerweise doch!?

      Danke

      bydey

      --
      -- bydey ist die Signatur und Verabschiedung, nicht der Nick --
      -- Navigate all your PHP web projects with  PHP Project Browser--