fehler beim highlight eines suchbegriffes

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

  • fehler beim highlight eines suchbegriffes

    hallo,
    ich habe ein problem und komme überhaupt nicht weiter vielleicht kann mir jemand helfen.

    es geht um folgendes.

    ich habe ein kleines cms gebaut und hole mir den inhalt einer seite aus der datenbank. bei der suche soll der der suchtext gehighlighted werden das geht und funktioniert auch folgendermaßen :

    PHP-Code:
    if ($such_text){
    $inhalt_ausgabe eregi_replace($such_text,'<span class="suche_highlight">\\0</span>',$inhalt_ausgabe);

    nun mein problem ich habe in der variable inhalt_ausgabe auch links stehen. Wie kann ich verhindern, dass er innerhalb dieser links den suchbegriff ersetzt, mir also nicht den link zerschiesst?

    also zum beispiel bei der suche nach matthias nicht folgendes passiert :

    ...
    <a class="mainlink" href="show_index_cms.php?cms_menu_id=69#<span class="suche_highlight">Matthias</span>">Testlink2(Sprungmarke):</a>
    ...

    hat jemand eine idee ??

    liebe gruesse und vielen dank im vorraus von

    robert

  • #2
    guck dir mal Reguläre Ausdrücke (wir haben ein Tutorial dazu) an, besonders die negativen Patterns.

    Kommentar


    • #3
      super danke!

      hat zwar etwas gedauert

      ich habs gefunden und zwar geht es folgendermassen (ist noch nicht richtig durchgetestet, aber fuer meinen fall klappt es ersteinmal)

      PHP-Code:
      $inhalt_ausgabe preg_replace("/($such_text)(?![^<]*>)/",'<span class="suche_highlight">$0</span>',$inhalt_ausgabe);
      $inhalt_ausgabe eregi_replace(/(?<!<[^>]*)$such_text(?<![^<]*>)/,'<span class="suche_highlight">\\0</span>',$inhalt_ausgabe); 
      das heisst er sucht such_text ausser wenn danach ein ">" zeichen kommt bei dem kein "<" davor steht. das heisst ein tag zugeht, der nicht aufgeht.

      das einzige problem ist nun das es nicht mehr mit eregi_replace nicht klappt aber das bekomme ich morgen raus !

      danke nochmal und liebe gruesse von

      robert

      EDIT:
      break by Abraxax
      Zuletzt geändert von Abraxax; 06.10.2003, 20:16.

      Kommentar


      • #4
        Klasse. da ist selten jemand, der so schnell vorran kommt. preg_replace hilft dir vielleicht?

        Kommentar


        • #5
          Habe genau dasselbe Problem, nur funktioniert das bei mir nicht!!
          PHP-Code:
          $inhalt_ausgabe eregi_replace("/(?<!<[^>]*)$search(?<![^<]*>)/",'<font id="search">\ 0</font>',$inhalt_ausgabe); 
          Der Fehler:
          Warning: eregi_replace(): REG_BADRPT in /home/services/public_html/search.php on line 38

          Vielen Dank im voraus
          Zuletzt geändert von figugegu; 09.12.2003, 16:39.

          Kommentar


          • #6
            du solltest vielleicht mal ein wenig escapen ....
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Was denn?
              PHP-Code:
              $inhalt_ausgabe eregi_replace("/(?<!<[^>]*)$search(?<![^<]*> )/",'<font id="search">0</font>',$inhalt_ausgabe); 
              Vor dem 0 sollte eigentlich ein backslash stehen, nur wird der vom Forum gefressen! Sonst sehe ich echt nicht was nicht in Ordnung sein soll!

              THX

              Kommentar


              • #8
                da müssen noch an ganz anderen stellen ein paar \ rein.

                schaue es dir mal im TUT an.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Hab mich jetzt schon ne ganze weile mit dem Tut beschäftig, funktioniert aber letztendlich immer noch nicht. Könnte mal jemannt bitte eine funktionierende Version posten.
                  Team BashComp

                  Kommentar


                  • #10
                    Original geschrieben von mnhg
                    Könnte mal jemannt bitte eine funktionierende Version posten.
                    und er soll bier mitbringen!
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Original geschrieben von wahsaga
                      und er soll bier mitbringen!
                      OffTopic:
                      um 15:00? gibts da nicht so etwas wie eine natürliche abwehr-funktion, die verhindert, daß man zu früh (in relation zu deinem tagesablauf) bier trinkt? zumindest hab ich des
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        mmmmh, jetzt ein schönes kühles Blondes, das wärs

                        Nein, also bei mir gibt es so eine Sperre nicht...


                        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                        Kommentar


                        • #13
                          OffTopic:
                          um 15:00? gibts da nicht so etwas wie eine natürliche abwehr-funktion, die verhindert, daß man zu früh (in relation zu deinem tagesablauf) bier trinkt? zumindest hab ich des
                          Das ist aber sicher auf nen Gendefekt zurückzuführen..?

                          Kommentar


                          • #14
                            hmm,

                            OffTopic:
                            könnte sein. ich finds ganz praktisch.
                            Die Zeit hat ihre Kinder längst gefressen

                            Kommentar


                            • #15
                              Durch welche glücklichen Umstände einige hier zum mod geworden sind, sind mir rätselhaft. Wenn ihr schon nichts Produktives sagen könnt, dann spamed wenigstens nicht rum.
                              Team BashComp

                              Kommentar

                              Lädt...
                              X