Verküpfung im String verändern

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

  • Verküpfung im String verändern

    Suchwort "Funktion"
    So ist der Ursprungsstring
    PHP-Code:
    Die <a href="http://www.Funktion.de" target="_blank">Funktion</aist für eine 
    und so soll es dann ausshen
    PHP-Code:
    Die 
    <
    a href="http://www.Funktion.de" target="_blank"><font size="3">Funktion</font></a
    ist für eine interne Suchmaschine auf meiner Seite. Die <font size="3">Funktion</font
    sollte funktionieren
    Die Änderung darf nicht in der URL passieren, da ja der Link nicht mehr funktioniert.

    Benötige Hilfe für den Ausdruck, ich habe bis jetzt das
    PHP-Code:
    $preg "$suche(?=(.*[^<]+$))";
    $text preg_replace("/$preg/","guter",$text); 
    Danke
    Armin

  • #2
    hi armin!
    so ganz steig ich noch nicht hinter, was du genau machen möchtest. kannst du das a bisserl näher erklären?

    Kommentar


    • #3
      Hi beebob.

      Ich habe auf meiner Website eine Suchmaschine. Geht man dann von dem Suchergbnis auf eine gefundene Seite wird das Suchwort farblich hervorgehoben.

      Das Problem ist nun, wenn das Suchwort auch in einer URL vorkommt wird dort auch der tag eingefügt der dafür sorgt das der Suchbegriff hervorgehoben wird, folglich die URL passt nicht mehr.

      Kommentar


      • #4
        geh erstmal mal hin und lass den string zeichenweise in einem loop durchlaufen.

        sobald du auf ein oder mehrere link-tags triffst schneidest du sie vom rest des strings ab und merkst dir die positionen der tags.

        dann wendest du auf den verbleibenden string, also der ohne tags, deine regexp an.

        ist die prozedur erledigt, fügst du die an den entsprechenden stellen die tags wieder ein.

        ist einfache mengenlehre.

        beebob

        ps: kannst auch statt regexp komplett dein eigenes ding nehmen. die regexp engine von php ist nämlich echt fett, da ist's besser ein paar zeilen mehr zu schreiben.

        Kommentar


        • #5
          Danke für Deinen Tipp. Ich hatte das auch schon mal so überlegt.

          Ich habe es nun so gelöst, dann wird in keinem tag eine Änderung vorgenommen ( nicht zwischen <...>)

          PHP-Code:
          $preg "((?i)(?=$search(?=([^>]*)<)))";
              
          $text preg_replace("/$preg/","<span class=hervorheben>",$text);
              
          $preg "((?i)(?<=$search(?=([^>]*)<)))";
              
          $text preg_replace("/$preg/","</span>",$text); 
          Zuletzt geändert von BielWeb; 04.10.2002, 09:14.

          Kommentar

          Lädt...
          X