ein preg_match stat 4x str_replace ?

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

  • ein preg_match stat 4x str_replace ?

    PHP-Code:
    str_replace("/","",str_replace("\\","",str_replace("'","",str_replace("\"","",$string)))); 
    wie kann ich das denn vereinfachen?
    fragen macht spass, denken nicht

  • #2
    Re: ein preg_match stat 4x str_replace ?

    Original geschrieben von kalleplom
    PHP-Code:
    str_replace("/","",str_replace("\\","",str_replace("'","",str_replace("\"","",$string)))); 
    wie kann ich das denn vereinfachen?
    preg_replace('~/|\\|\\'|"~', '', 'string');
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      danke für die antwort!

      aber das / bleibt trotzdem noch drin...
      und was macht die tilde (~) ?
      fragen macht spass, denken nicht

      Kommentar


      • #4
        delimit'en. http://pcre.nophia.de/explain/delimiter/index.php

        vielleicht
        Code:
        preg_replace('~(/|\\|\'|")~', '', 'string');

        Kommentar


        • #5
          Bitte beachten: Das Forum verschluckt bei dem einsamen ' von Penizillins Code den escapenden Backslash. Am besten einfach zitieren und dann angucken
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            Und warum braucht man dafür reguläre Ausdrücke?

            PHP-Code:
            $weg_damit = array('/''\\\\\\'"'"'"');
            $string str_replace($weg_damit''$string); 

            EDIT:
            tolles syntaxhighlighting...
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Das geb ich MrHappiness recht - wenn wirklich nur die 4 Satzzeichen entfernt werden sollen ist die Lösung mit str_replace und dem Array die bessere.

              Möchte man aber generell nur die Buchstaben, vielleicht noch Punkte und Kommas aus einem String rausholen macht eine Regular Expression Sinn.

              PHP-Code:
              $regexp "/\\w+/";  //Holt alle Wortzeichen
              $regexp "/[a-zA-Zäöü.,\\-+]+/"//alle Buchstaben von a-z in groß und klein mit ein paar Sonderzeichen. 
              Aus dem Ausdruck kann man das ganze dann mit preg_match oder preg_match_all holen - es schützt einen Gleichzeitig auch vor SQL-Injections, weil schließlich überhaupt kein "; oder sowas im SQL ankommt.

              EDIT:
              Achso, ich hab die \ schon escaped. Also nicht die RegExp aus dem "zitat" nehmen.
              Zuletzt geändert von prego; 11.08.2005, 08:30.

              Kommentar

              Lädt...
              X