Problem mit Markieren von Suchergebnissen

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

  • Problem mit Markieren von Suchergebnissen

    Hallo zusammen,
    habe schon viel in diesem Forum über dieses Thema gesehen, aber nichts hat mich wirklich weitergebracht.
    Ich erzähle mal kurz.

    Auf meiner Page sind die Inhalte in einer MySQL-DB als HTML-Code abgespeichert. Ich durchsuche die Datenbank und lasse die Überschriften der Treffer ausgeben und verlinke zu der entsprechenden Seite mit

    PHP-Code:
    echo "<a href='index.php?show=text&id=".$id."&such=".$q."'>Link</a>"
    Auf der folgenden Seite liest er dann die Datenbank aus und macht folgendes:

    PHP-Code:
    if ($such<>''){$ueberschrift str_replace($such,"<span class='bggelb'>".$such."</span>",$ueberschrift);} 
    Funktioniert auch wunderbar mit dem gelben Hintergrund.

    Wenn ich aber nach z.B. "Hallenbad" suche und in einem Text steht
    PHP-Code:
    <img src="hallenbad.jpg"
    dann macht er mir da folgendes draus:

    PHP-Code:
    <img src="<span class='bggelb'>hallenbad</span>.jpg"
    Ausserdem unterscheidet er zwischen "hallenbad" und "Hallenbad".
    Stehe echt auf dem Schlauch. Kann mir vielleicht jemand einen Tipp geben? Vielleicht auch 2
    Zuletzt geändert von ; 05.01.2005, 08:24.

  • #2
    Wie wäre es wenn du den Suchbegriff, und sämtliche Db Einträge bevor du sie miteinander vergleichst, in Kleinbuchstaben umwandelst?!?!

    http://de2.php.net/manual/de/function.strtolower.php

    Kommentar


    • #3
      wie wäre es mit einer regex ? derHund hat ein onlinetool wo du es testen könntest.
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        Vielen Dank soweit. Teste grad mit strtolower.

        Wo finde ich denn dieses Online-Tool?

        Kommentar


        • #5
          Original geschrieben von luenstedt
          Wo finde ich denn dieses Online-Tool?
          in der signatur vom hund
          Kissolino.com

          Kommentar


          • #6
            Hallo,
            habe jetzt getüftelt wie ein bekloppter, aber ich komme einfach nicht weiter.
            Kenne mich mit diesem regex einfach nicht aus.

            Kann mir vielleicht jemand die Grundstruktur sagen, die ich nutzen muss, um

            - eine Variable zu durchsuchen und ein bestimmtes Wort zu markieren
            - Falls dieses Wort in einem HTML-Image- order A-Tag steht soll es nicht markiert werden
            (z.B. Suchwort Hallenbad, Tag: <img src="Hallenbad.jpg"> oder <a href="Hallenbad.html">Badanstalt</a>)

            Vielen Dank für eure Hilfe!

            Kommentar


            • #7
              Kenne mich mit diesem regex einfach nicht aus.
              Schon unser Tutorial angesehen?

              http://www.php-resource.de/tutorials/read/10/1/

              Kommentar


              • #8
                mal als beispiel,

                Code:
                /hallenbad(?![^<]*>)/is
                http://pcre.nophia.de/evaluate/cc306...dex.php#output

                du brauchst assertions - schau mal im manual

                edit: achso, du kennst dich garnicht aus ... dann solltest du vorher das tutorial lesen, ja.
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Moin Moin und ein frohes neues Jahr aus Hamburg!

                  Habe jetzt viel rumgebastelt und bin dank "derHund" auch zum Ziel gekommen. Vielen Dank dafür.


                  Jetzt ist mir aber noch etwas anderes aufgefallen, was ich glaube ich mit regex nicht lösen kann:

                  Ich habe eine Datenbank-Abfrage:
                  PHP-Code:
                  $sql="SELECT * FROM menu WHERE navi LIKE '%$q%' OR text1 
                  LIKE '%
                  $q%' OR ueberschrift LIKE '%$q%' ORDER BY parentid,position"
                  In text1 steht HTML-Text drin. Wenn ich jetzt z.B. nach "sea" suche, um seat zu finden, findet er auch
                  Code:
                  <PARAM NAME="SeamlessTabbing" VALUE="1">
                  aus einem Flash-Part der HTML-Seite. Kann man das auch irgendwie sql-seitig verhindern, dass er html-Tags durchsucht?

                  Kommentar


                  • #10
                    sql-seitig verhindern
                    wow...

                    dir wurde doch erklärt, wie du mit regexp im bezug auf den text arbeitest. wie kommst du jetzt auf sql?

                    Kommentar


                    • #11
                      Original geschrieben von penizillin
                      dir wurde doch erklärt, wie du mit regexp im bezug auf den text arbeitest. wie kommst du jetzt auf sql?
                      was ist denn so unverständlich daran, dass ein suchergebnis, in welchem das suchwort innerhalb eines HTML-tags auftaucht (z.b. auch link-URL) in den suchergebnissen gar nicht auftauchen soll, und er diesen "treffer" gleich SQL-seitig ausschließen will?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        hätte nicht erwartet, dass man sowas wie
                        <PARAM NAME="SeamlessTabbing" VALUE="1">
                        in der db speichert

                        Kommentar


                        • #13
                          Genau, das klingt völlig bekloppt, aber so ist es bei mir.

                          Habt ihr denn eine Idee, wie ich das sql-seitig verhindern kann? Vielen Dank für eure Hilfe.

                          Kommentar


                          • #14
                            Code:
                            SELECT * FROM `tabelle` WHERE `spalte` REGEXP "a/*"
                            statt dem unsinnigen "a/*" sollte man den entsprechenden ausdruck anbringen.

                            Kommentar


                            • #15
                              Hallo,

                              hab hier im Forum schon gesucht (deswegen kein neues Thema) hab aber nicht so ganz gefunden, was ich suche.

                              Ich benutze ein Script von:

                              http://simplecontent.net/snippets/vi...arkhits_2.html

                              und es klappt schonmal sehr gut.

                              Weiss aber jemand, wie man es schafft Tags wie: <textarea>, <script>, style> (und sonstige Texte in Tags, die nicht zwischen <> stehen, jedoch nicht verändert werden sollten) zu überbrücken.

                              Bei mir findet die Markierung der Suchberiffe nachdem die Seite erstellt wurde statt und deshalb kommt es öfters mal vor, dass solche Tags zu finden sind.

                              Danke i.V.
                              Daniel.

                              Kommentar

                              Lädt...
                              X