problem mit preg_replace

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

  • problem mit preg_replace

    hallo,
    ich habe ein problem mit der funktion preg_replace.
    es wird in einer template-klasse verwendet die ich nicht
    selbst geschrieben habe und mir die abläufe teilweise nicht
    ganz klar sind.
    fakt ist, dass wenn ich zum beispiel ein string mit $1$1,
    also mit dollar-zeichen, habe, dann wird er string
    fehlerhaft eingefügt.

    hier ein kleines beispiel:
    PHP-Code:
    echo "key: ".$this->varkeys["sz"]."<br>";
    echo 
    "val: ".$this->varvals["sz"]."<br>";
    echo 
    "sz vorher: ".$str."<br>";
    $str = @preg_replace($this->varkeys$this->varvals$str);
    echo 
    "sz nachher: ".$str."<br>"
    ergebnis:
    key: /\{sz\}/
    val: $1$10h03fMV$beiRlWI5P27NUXzDfksH3/
    sz vorher: {sz}
    sz nachher: h03fMV$beiRlWI5P27NUXzDfksH3/

    voran liegt das?
    danke für eure hilfe

    emmi

  • #2
    überaus clever Fehlermeldungen mit @ zu unterdrücken.

    Außerdem müssen Dollarzeichen escaped werden ...

    Kommentar


    • #3
      sorry, auch ohne @ kommt keine fehlermeldung.

      was verstehtst du unter "escaped werden" ?

      grüße
      emmi

      Kommentar


      • #4
        mach bitte ein Grundlagentutorial und Google nach escapen.

        Wir können hier nicht bei Adam und Eva anfangen.

        Kommentar


        • #5
          $1 bedeutet bei der ersetzung die erste backreferenz des suchmusters. das ist bei dir nicht gegeben (und auch nicht gewollt) und daher wird $1 durch nichts ersetzt.
          abhilfe schafft wie gesagt, escapen
          jag' den string mal durch preg_quote(), dann siehste, was gemeint ist.

          außerdem sehe ich keine notwendigkeit für preg_replace(), ein einfaches str_replace() tut es auch.

          Kommentar


          • #6
            danke für die erklärung. :-)
            werds mal mit str_replace versuchen

            Kommentar

            Lädt...
            X