Suchtreffer

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

  • Suchtreffer

    Hallo zusammen

    ich habe mir eine Suche für die HP gebastelt. Funzt alles wunderbar. Damit ich den Parser nicht mit jeder Suchanfrage belästigen muss, habe ich ein Script welches mir per CronJob um Mitternacht alle Seiten abfrage und den html Output in Folder suche speichert. Soweit so gut
    Nun machte ich es bis anhin so, dass ich die eingelesenen Files strip_tage, damit man nicht nach dem HTML Code suchen kann.
    In den Reultaten habe ich einen Link um die Treffer auf der Seite anzuzeigen.
    Jetzt wollte ich, damit HTML Formatierungen erhalten bleiben, gewisse Tags drin lassen (<br>,<h1-h6>,<img>,<input>,<form> und <div>).
    Das Problem ist nun, dass ich leider keinen Plan habe, wie ich meinem RegExp beibringen könnte, dass er Suchtreffer, die zwischen < und > stehen, ignoriert werden.
    PHP-Code:
    preg_replace("/$suchbegriff/i",'<span style="background-color:yellow;">\\\\0</span>',$string); 
    Kann man diesem RegExp irgendwie beibringen, dass er Treffer zwischen spitzen Klammern nicht beachten soll ?

    Ich hoffe es hat jemand eine Idee wie ich das umsetzen könnte.
    Danke und Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

  • #2
    Hab was gefunden, was deinen Ansprüchen gerecht werden dürfte - hoffe ich mal

    Kommentar


    • #3
      Salut Tommy

      danke vielmals für die Superseite. Seiht sehr vielversprechend aus. Ich werde mir nach der Arbeit die Sache mal anschauen und probieren in meiner Suche auch so zu machen.
      Nochmals danke und Cheers

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Zu wenige Treffer

        Hallo zusammen

        ich habe mir den Link von Tommy mal angeschaut und meine RegExp
        nach diesem Schema umgebaut.
        Jetzt habe ich aber ein Prob, das ich mich wirklich nicht erklären
        kann. Es scheint als werden je nach Scuhbegriff nicht alle Treffer
        gefunden. Wenn ich z.B. einfach nach 'er' suche, das in irgendeiner
        Form (innerhalb, am Anfang oder am Ende) unter Ausschluss der
        Gross-Kleinschreibung, dann findet er alle Treffer (so zumindest
        scheint es). Wenn ich jetzt aber unter den genau gleichen
        Voraussetzungen z.B. nach 'jeder' suche, dann findet der RegExp
        wohl was, aber leider längst nicht alles
        PHP-Code:
        [...]
        if(
        $gross_klein === 'false'){
            
        $test preg_replace("/((<[^>]*)|$text)/ie",'"\\2"=="\\1"? "\\1" :
         "<span style=\"background-color:yellow;\">\\1</span>"'
        ,$temp);
        }
        else{
            
        $test preg_replace("/((<[^>]*)|$text)/e",'"\\2"=="\\1"? "\\1" : 
        "<span style=\"background-color:yellow;\">\\1</span>"'
        ,$temp);
        }
        [...] 
        Ich habe eine Screenshot angehängt, der zeigt, dass eben nicht alle Vorkommen des Suchbegriffes gefunden werden (Gross-Kleinschreibung wurde ignoriert --> if-Zweig wird ausgeführt)

        Ich hoffe jemand weiss hier was.
        Guät Nacht

        tobi
        Angehängte Dateien
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Oh mann oh mann,
          das war ein soooooo blöder Fehler
          Damit ich, wenn der User auf den Link 'Suchresultate auf der Seite
          anzeigen' klickt, die Einstellungen für die Suchfkt noch habe, speichere
          ich diese Einstellungen in Session Vars.
          Also die Var $gross_klein kommt aus einer Session Var. Diese kann
          true oder false sein. Das dumme ist nur, dass ich im Falle von false das
          ganze so eingetragen habe
          PHP-Code:
          $_SESSION['grkl'] = false;
          //Richtig wäre das gewesen
          $_SESSION['grkl'] = 'false'
          Nun funzt also meine Prüfung. So als Tipp für alle Neueinsteiger:
          Der Fehler habe ich nur dank var_dump() und Prüfung der Werte gefunden.

          Also Danke, Gruss und bonne weekend

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            $_SESSION['grkl'] = 'false';
            ^^ sowas ist sicherlich FALSE!

            warum schreibst du das false als string in die session?
            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
              warum schreibst du das false als string in die session?
              Werde ich gleich mal noch auf true und false umstellen.

              Danke und Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar

              Lädt...
              X