ereg_replace : \1 an eine Funktion übergeben

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

  • ereg_replace : \1 an eine Funktion übergeben

    Hallo alle zusammen,

    es geht um die folgende Zeile:

    ereg_replace("PK(.*)Position",doText("\\1"),$ergebnis);

    Das "\\1" gibt ja eigentlich das Ergebnis der ersten runden Klammer
    zurück, aber bei der Funktion "doText" kommt wirklich
    "Backslash-Backslash-1" an und nicht das, was die RegEx zurückgibt.

    Wie kann man das RegEx-Ergebnis an die Funktion übergeben.
    Man kann das ganze in mehrere Zeilen/Schritte aufteilen, aber gibt es eine 1-Zeilen-Lösung?

    \\ statt \ muss sein, denn wenn ich die Funktion drumherum wegnehme, geht es nur mit dem doppelten Backslash.

    Vielen Dank
    Frank


    PS:
    preg_replace_callback scheint die Lösung zu sein, aber ich muss der Funktion noch zwei weitere Parameter mitgeben.
    Hier habe ich die Parameter weggelassne, um nicht zu verwirren.
    Zuletzt geändert von THOMKIT; 15.05.2007, 16:29.

  • #2
    PHP-Code:
    preg_replace("#PK(.*)Position#Ue","doText('$1')",$ergebnis); 
    preg_replace sollte reichen ereg* ist schon länge veraltet.
    Kissolino.com

    Kommentar


    • #3
      Vielen Dank für die sehr schnelle Antwort - es funktioniert super.

      Gruß
      Frank

      Kommentar

      Lädt...
      X