Position von Text aus Funktionen falsch

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

  • Position von Text aus Funktionen falsch

    Ich lasse aus einem String folgendes ersetzen (z.B.):

    {cp:navigation type=link}

    Hier das bisherige Ergebnis:

    $array[$an] = preg_replace("/{navigation type=(.*)}/e","navigation('\\1')",$array[$an]);

    Mit obenstehendem Beispiel wird also "link" an die Funktion navigation() übermittelt, dort werden verschiedene Abfragen durchgeführt und in der Variable $nav zurückgeliefert. Das Problem ist, dass $nav nicht an der Stelle eingesetzt wird, wo der zu ersetzende Text war, sondern immer am Anfang des Strings. Welche Lösungsmöglichkeiten gibt es???

    Danke!
    Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
    www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
    [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

  • #2
    Hab zwar so gut wie keine Ahnung von regulären Ausdrücken, aber ich würd mal das probieren:

    Code:
    $array[$an] = preg_replace("/{navigation type=(.*)}/e","navigation('\\0')",$array[$an]);
    MfG

    Kommentar


    • #3
      Nein, daran lag es nicht. Die Klammerinhalte beginnen mit \\1 und nicht mit \\0. Das Problem war, dass ich bei der Rückgabe des Wertes aus der Funktion das Ganze noch mit Addslashes anpassen musste, damit alles auch fehlerfrei ausgeführt wird, also so:

      $array[$an] = preg_replace("/{navigation type=(.*)}/e","addslashes(navigation('\\1'))",$array[$an]);

      Damit funktionierts.
      Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
      www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
      [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

      Kommentar

      Lädt...
      X