Zeichen entfernen mit preg_replace

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeichen entfernen mit preg_replace

    Hallo, ich möchte bestimmte Zeichen aus einem String entfernen.

    Folgende Zeichen funktionieren nicht | \ $ /


    Auf diese Weise werden die anderen Zeichen entfernt.

    PHP-Code:
    $suchmuster = array();
        
    $suchmuster[0] = '/#/';
        
    $suchmuster[1] = '/</';
        
    $suchmuster[2] = '/%/';
        
    $suchmuster[3] = '/>/';
        
    $suchmuster[4] = '/&/';
        

        
    $_POST['variable'] =preg_replace($suchmuster""$_POST['variable']); 
    Was muss ich anders machen damit ich auch diese Zeichen | \ $ /
    entfernt bekomme?

    Danke für Hilfe

  • #2
    Diese Zeichen haben in Regex-Pattern besondere Bedeutung. Wenn du sie ohne diese Bedeutung verwenden möchtest, musst du sie escapen. Wie das geht, steht im Manual.

    Kommentar


    • #3
      Hallo,

      diese Zeichen haben in regulären Ausdrücken eine Sonderbedeutung und müssen maskiert werden. Das macht man meistens mit einem Backslash davor. Da der aber in Zeichenketten selbst maskiert werden muss (naja nicht immer muss, aber auf jeden Fall sollte), brauchst du 2 davon:

      /\./ matcht einen . und wird als String "/\\./" geschrieben.
      /\// matcht einen / und wird als String "/\\//" geschrieben.
      /\\/ matcht einen \ und wird als String "/\\\\/" geschrieben, da jeder der beiden Backslashes im String selbst escaped werden muss (ja, diesmal muss).

      Gruß,

      Amica
      Zuletzt geändert von AmicaNoctis; 02.07.2010, 14:12.
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar

      Lädt...
      X