gondor: preg_replace()-Funktion gesucht

Hallo, wie würde eine preg_replace()-Funktion aussehen, wenn ich folgendes ersetzen möchte:

style="border: 1px;"

" in "

style=\"border: 1px;\"

\" in "

style=\"border: 1px;\"

\" in "

style=\\"border: 1px;\\"

\\" in "

etc.

Vielen Dank für schnelle Info,
gondor(..)

  1. Hallo, wie würde eine preg_replace()-Funktion aussehen, wenn ich folgendes ersetzen möchte:

    Probier mal

    preg_replace("/\+/g", '"', $string);

    ~JJ

    1. preg_replace("/\+/g", '"', $string);

      Da fehlte noch die double quotes:
      preg_replace("/\+?"/g", '"', $string);

    2. preg_replace("/\+/g", '"', 'style=\\\"border: 1px solid;\\\"')

      kommt NULL zurück.

      Andere Lösung?

      gondor(..)

    3. gudn tach!

      preg_replace("/\+/g", '"', $string);

      nee, und auch der vorschlag "/\+?"/g" ist nicht richtig.

      in perl waere es schlicht
        s/\+"/"/g;
      in php dagegen muss man immer noch das zusaetzliche parsen des strings beruecksichtigen:

      preg_replace('/\\+"/', '"', $foo);

      oder halt ueberfluessiger weise:
      preg_replace("/\\+"/", """, $foo);

      warum das ganze: erst wird der string geparst, dann wird der resultierende regexp geparst; d.h. es muss ggf. zwei mal escaped werden.

      (es geht auch mit nur drei backslashes, aber das sollte man wirklich nur verwenden, wenn man genau weiss, man tut)

      prost
      seth

      1. Hi,

        preg_replace('/\\+"/', '"', $foo);

        dies greift nicht beim ersten geforderten Fall:

        | " in "

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. gudn tach

          preg_replace('/\\+"/', '"', $foo);

          dies greift nicht beim ersten geforderten Fall:

          | " in "

          "greift nicht" ist ungefaehr so informativ wie "funktioniert nicht". ;-)
          was genau meinst du?

            
          <?php  
          $str = 'style=\"border: 1px;\"'; // same as 'style=\\"border: 1px;\\"'  
          echo($str."\n");                 // prints style=\"border: 1px;\"  
          $str = preg_replace('/\\\\+"/', '"', $str);  
          echo($str."\n");                 // prints style="border: 1px;"  
          ?>
          

          prost
          seth

  2. Hi,

    \\" in "

    wie entstehen denn diese multiplen ""? Vielleicht hilft Dir schon der gezielte Einsatz von stripslashes weiter. Ansonsten, reicht Dir denn ein einfaches str_replace("\", "", $str) nicht? Das ist in der Regel schneller als ein regulärer Ausdruck.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.