Gå til innhold

Utheve alle søkeord i et søk


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet+6132
Hva er beste måte å utheve alle ord som brukeren søker på når jeg henter dataene fra en mySQL-database? Hvis brukeren søker på "bilder biler" må "Bilder" og "Biler", "BILDER" og "BILER", "bilDer" og "bilEr" osv. også bli uthevet.

5110363[/snapback]

 

Hmm...

 

<?
$searchstring = "bilder biler";
$searcharr = explode(" ", $searchstring);

$searchresult = "vi har mange fine bilder av biler i vårt galleri";

foreach($searcharr as $bold) {
 $old = $bold;
 $new = "<b>$bold</b>";
 $searchresult = str_replace($old, $new, $searchresult);
}

echo $searchresult;
?>

 

Vet ikke om det er noen optimal måte å gjøre det på, men det burde funke ;)

 

EDIT: Nå funker koden.

Endret av Slettet+6132
Lenke til kommentar
Vet ikke om det er noen optimal måte å gjøre det på, men det burde funke ;)

 

EDIT: Nå funker koden.

5111710[/snapback]

 

Tusen takk! :D

 

Bare en liten ting: Prøvde med strengen vi har mange fine bilder av biler i vårt galleri. Vi har også Biler, biLDER, biLdebiler osv. som gav resultatet vi har mange fine bilder av biler i vårt galleri. Vi har også Biler, biLDER, biLdebiler osv.

 

Noen god ide til hvordan jeg også får uthevet i alle fall Bilder og Biler? :)

Lenke til kommentar
Vet ikke om det er noen optimal måte å gjøre det på, men det burde funke ;)

 

EDIT: Nå funker koden.

5111710[/snapback]

 

Tusen takk! :D

 

Bare en liten ting: Prøvde med strengen vi har mange fine bilder av biler i vårt galleri. Vi har også Biler, biLDER, biLdebiler osv. som gav resultatet vi har mange fine bilder av biler i vårt galleri. Vi har også Biler, biLDER, biLdebiler osv.

 

Noen god ide til hvordan jeg også får uthevet i alle fall Bilder og Biler? :)

5112015[/snapback]

Du kan bruke str_ireplace i stedet for str_replace ;)

edit: kunn php5

Endret av Axentrix
Lenke til kommentar

Nå har det seg slik at pear str_ireplace for php4 er veldig treg. preg_replace er ganske mye raskere. (eregi_replace er faktisk tregere enn pear str_ireplace. Det sier faktisk noe om hvor trege eregi funksjonene egentlig er...)

 

Men nå er jo ikke hastighet alt da. Den dagen man evt. går over til php 5 vil man jo slippe å endre koden.

 

Med mindre man ønsker noe av den fleksibiliteten preg_replace gir. f.eks at den ikke trenger å endre case på ord i teksten det søkes i.

<?php
$text = "Bilder av biler. Biler til salgs.";
$text = preg_replace("/bilder|biler/i","<b>\\0</b>",$text);
?>

Dette eksempelet vil gi "Bilder av biler. Biler til salgs." i motsetning til "bilder av biler. biler til salgs." med str_ireplace eksempelet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...