preg_replace ersetzt nicht was ich will

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

  • preg_replace ersetzt nicht was ich will

    Hallo.
    Ich habe ein kleines Problem mit preg_replace.
    Habe mir Platzhalter folgendermaßen definiert: <@platzhaltername@>
    Die Ersetzung habe ich folgendermaßen gemacht ($platzhalter wird aus einer Datenbank gelesen):
    PHP-Code:
    $template preg_replace('<@'.$platzhalter['id'].'@>',$platzhalter['content'],$template
    Komischerweise werden die äußeren "spitzen" Klammern nicht ersetzt, so dass das Ergebnis so aussieht: <das ist der inhalt>
    Was mache ich falsch?
    Beste Grüße, Andreas
    andreas.mkq.de

  • #2
    Werden sie auch nicht, da sie hier als Limiter dienen. Mach mal folgendes:

    PHP-Code:
    $template preg_replace('|<@'.$platzhalter['id'].'@>|',$platzhalter['content'],$template); 
    Das sollte gehen!

    Kommentar


    • #3
      Ja, so funktionierts. Also ist das äußerste Zeichen immer der "Limiter", der dann auch nicht ersetzt wird? Und warum gerade '|', mit was anderm scheint es nicht zu funktionieren...
      Besten Dank schonmal!
      andreas.mkq.de

      Kommentar


      • #4
        Lies doch mal im Manual zum Thema nach. Dort steht welche Zeichen als Delimiter vorkommen können und auch sonst steht viel zum Thema RegExp drin.
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Es gibt gwisse Zeichen | @ # ... die Du als Limiter nutzen kann. Guck am besten mal in die PHP Manual welche das sind, kenn die nun auch nicht alle auswendig...

          Kommentar

          Lädt...
          X