preg_replace & Problem mit Regulärem Ausdruck

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

  • preg_replace & Problem mit Regulärem Ausdruck

    Hallo,

    ich habe einen Problem und hoffe hier vielleicht einen Lösungsansatz zu
    finden:
    Und zwar möchte ich aus einem Text alle Wörter highlighten (z.b. mit <font color="red">Wort</font>>) die sich nicht in einer Überschrift (<b>text</b>) oder einem Link (<a href="link">link</a>) befinden. Die Wörter die markiert werden, kommen dann gesondert aus der Datenbank und werden dann mit dem Inhalt verglichen. Den ganzen regulären Ausdruck muss ich dann in ein preg_replace einbauen.
    Hier schon mal ein Versuch eines Ausdrucks: "/([<][ab].*$word.*[ab][>]). Weiß aber nicht wie ich das ganze negieren kann und dann gescheit in das preg_replace bringe.

    Danke schon mal im voraus.

    Gruß Cromo

  • #2
    1. eine überschrift ist ein <h1> (bis <h6>) und nicht <b>. das ist fett
    2. <font face...> benutzt man nicht mehr.

    was passiert bei
    PHP-Code:
    <pEin Absatz mit einem <...>Link</a></p
    nimm den string mit preg_split auseinander. also so was wie
    PHP-Code:
    $link= ("'<a[^>]*>.*?</a>'si");
    $headline = ("'<h1[^>]*>.*?</h1>'si");
    $split preg_split($link$code); 
    dann die einzelnen elemente des arrays durchgehen und später wieder alles zusammenfügen.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      danke für deine antwort.
      habs jetzt doch noch etwas anders gelöst.

      1. is mir schon klar das h1 bis h6 für überschriften benutzt wird. es ging mir halt eigentlich nur darum das man über angabe eines bestimmtes html tags wörter ausschließen kann.

      2. is mir auch klar. ich hatte bei mir halt nen schnelles beispiel zusammengebastelt. nur damit ich erkenne das er was macht.

      eigentlich brauche ich das ganze für ein lexikon das wörter die darin stehen im content markiert und auch verlinkt (mit overLib). das markieren wäre dann die verlinkung und kein <font> tag.

      hier noch meine (test)lösung:

      PHP-Code:
      $content "<p>test  <a href=\"asdf\" > bla test bla </a> tste  <b>test</b> testdf </p>";

      $word "test";

      $replace '"$2"=="$1"?"$1":"<a href=\"neuerLink\" >'.$word.'</a>"';

      $reg "/(([<][ab].*".$word.".*[ab][>])|".$word.")/e";

      $content preg_replace($reg,$replace,$content);

      echo 
      $content
      Gruß Cromo

      Kommentar

      Lädt...
      X