[PHP] Suchscript str_replace Problem

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hapablap, 16. Februar 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 16. Februar 2009
    Suchscript str_replace Problem

    Hi Leute,

    Ich hab für meine Seite ein Suchscript geschrieben, es funktioniert sehr gut, ist ja auch nicht besonders schwierig!
    Mein Problem hat weniger was mit der Suche zutun, sondern mehr mit der Ausgabe des Suchergebnisses.
    Der Besucher gibt in das Input z.B. "hallo" ein. Gefunden wird alles mit dem Wort "hallo" drin.
    Ausgegeben wird:

    bla bla bla hallo bla bla bla

    So, gibt jetzt aber jemand hAllo ein, wird ausgegeben:

    bla bla bla hAllo bla bla bla

    Ihr wisst sicher, was ich meine ^^ Also ich sage str_replace das Wort im Suchergebnis mit der Eingabe, um es mir einfach zu machen. Die Suchergebnisse kommen alle aus der Datenbank.

    Ich hab mir versucht, die Typo3 Extension indexedsearch anzuschauen, aber bei diesem langen Code finde ich leider nicht deren Lösung, denn dort klappt es! Wäre toll, wenn jemand weiß, wie das geht

    Danke schon mal,
    Hapablap
     
  2. 16. Februar 2009
    AW: Suchscript str_replace Problem

    Hey,

    geh für die suche einfach hin und wandele alle texte in Kleinbuchstaben um.

    PHP:
    strlower ( $string )
    Damit solltest du alles finden



    Gruß Blackbird89
     
  3. 16. Februar 2009
    AW: Suchscript str_replace Problem

    Oh du musst mich falsch verstanden haben ^^ Also ich finde alles, da ich beim Suchen Groß- und Kleinschreibung missachte.
    Aber es geht darum, dass das gesuchte Wort im Ergebnis markiert wird, was über str_replace geschieht und demnach der Besucher die Rechtschreibung vorgibt
    Das heißt aus "Suchwort" wird "<b>Suchwort</b>" gemacht.
    Jedoch wird leider aus "sUchWorT" auch "<b>sUchWorT</b>" gemacht :-/
     
  4. 16. Februar 2009
    AW: Suchscript str_replace Problem

    Hey,

    mh das ist schon wieder etwas komplexer

    Aber ich glaube (bin mir nicht sicher, hab grad nichts zum testen da) das du mit folgendem Befehl weiter kommst:

    PHP:
    preg_replace
    Gruß Blackbird89
     
  5. 16. Februar 2009
    AW: Suchscript str_replace Problem

    Du brauchst ne Regular expression die wie dein Suchwort aussieht und um die du dann nur die <b> rummachst.
     
  6. 17. Februar 2009
    AW: Suchscript str_replace Problem

    Also ich habs jetzt hinbekommen ... hab ne kleine Methode geschrieben, die meinen String zu einem Array macht, dort wird dann jeweils jedes Element mit dem Suchbegriff verglichen, wird dieses Element gefunden, bekommt es ein <b> Tag drum herum, daraufhin wird das Array wieder zusammengesetzt zu einem String und zurückgegeben.
    Ist die Arbeit umsonst, wird der String zurückgegeben, den man übergeben hat.
    Trotzdem danke an euch

    Edit: Es gibt doch eine viel besserere Lösung als meine ^^



    ---------------(Ursprüngliche Nachricht von 6000Loader )---------------
    Also deine Methode ist eine Quälerei!

    So wird es richtig gemacht!

    PHP:
    $suche  'hallo' ;
    $text  'Eu vim putant quodsi hallowelteinwort alterum, pri prompta abhorreant consectetuer ex. In sed dictas ceteros deseruisse, salutatus adipiscing sit ut? Mea cu assum hallo oblique, eos ei stet commune. Sit ut elitr regione aliquyam, te malis nobis regione sed, HalLo cu cum ullum regione habemus.' ;

    $text  preg_replace ( '!(' $suche  . ')!i' , '<span style="background-color:#ffff66">\\1</span>' , $text );

    echo 
    $text ;
    Anstatt von:
    Code:
    <span style="background-color:#ffff66">\\1</span>
    Kannst du alles eintragen! Das \\1 ist das gefundene Wort!

    Danke noch mal an 6000Loader

    - closed -
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.