romy: preg_match und Position des Gefundenen

Hi,

Versuche mich gerade an einer Linkersetzung. Habe auch eine schöne Variante, die aber nur super läuft, wenn es nur einen Link gibt, da ich den gefundenen Link sofort wieder ersetze, findet preg_match ihn natürlich nochmal. Wie könnte ich dies umgehen. Vielleicht wäre es günstig nach dem Ersetzen weiterzugehen, so dass der schon ersetzte Teil nicht nochmal überprüft wird, oder eine ähnliche Variante. Stehe da gerade etwas auf dem Schlauch? Was kann man da tun?

ciao
romy

--
DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
  1. Hallo.

    Wie suchst und ersetzt Du denn zur Zeit. preg_replace() sollte eigentlich für genau Deine Aufgabe gemacht sein.

    Grüße aus Würzburg
    Julian

    --
    resist - Sich dem Irak-Krieg widersetzen!
    Informationen: http://www.resistthewar.de
    http://www.attac.de/globkrieg/
    --
    ss:) zu:{ ls:< fo:) de:< va:} ch:° n4:} rl:° br:> js:| ie:{ fl:( mo:)
    1. Hi,

      Wie suchst und ersetzt Du denn zur Zeit. preg_replace() sollte eigentlich für genau Deine Aufgabe gemacht sein.

      solange der suchausdruck gefunden wird
      ersetze ihn

      das Problem ist, dass ich links suche (zB.) und diese verändere in der Art: <a href=bla.htm">bla</a> wird zu <a href="blabla.htm?bla=bla"

      bla</a>

      d.h. es ist immer noch ein a-tag da und dieses wird wieder gefunden, wenn der String aufs Neue durchsucht wird. Somit ensteht eine endlos-Schleife.
      Lösung1: ich schneide den String ab, sobald ich was gefunden habe, damit es nicht noch mal gefunden werden kann, aber ich kenne ja die genaue Position des Gefundenen nicht, da preg_match nur 0 oder 1 zurückgibt.

      Lösung2: irgendeine geeignete Abbruchbedingung, aber mir fällt nichts passendes ein

      Weisst Du was?

      danke
      ciao
      romy

      --
      DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
      sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
      Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
      Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
      1. Hi,

        Dein Problem ist lösbar. Guckst Du hier:
        http://www.php.net/manual/de/function.preg-replace.php
        http://www.php.net/manual/de/function.preg-replace-callback.php

        Vielleicht hilft's Dir auf die Sprünge.

        Gruß,
        Danny

        1. Hi,

          http://www.php.net/manual/de/function.preg-replace-callback.php

          das ist genau was ich suche!

          Danke, super

          ciao
          romy

          --
          DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
          sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
          Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
          Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode