simenss Skrevet 5. november 2005 Del Skrevet 5. november 2005 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. Lenke til kommentar
Gjest Slettet+6132 Skrevet 6. november 2005 Del Skrevet 6. november 2005 (endret) 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 6. november 2005 av Slettet+6132 Lenke til kommentar
simenss Skrevet 6. november 2005 Forfatter Del Skrevet 6. november 2005 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! 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
Axentrix Skrevet 6. november 2005 Del Skrevet 6. november 2005 (endret) 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! 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 6. november 2005 av Axentrix Lenke til kommentar
dabear Skrevet 6. november 2005 Del Skrevet 6. november 2005 I dokumentasjonen til str_ireplace, finner du pakken pear_compat elns, med den får du str_ireplace i php4 i tillegg Lenke til kommentar
dabear Skrevet 6. november 2005 Del Skrevet 6. november 2005 bruk eregi_replace 5115215[/snapback] Hva behager? ereg-funksjonene er skikkelig treige, du kunne iallefall anbefalt preg* .Dødfødt å bruke regex, når du ikke trenger det.. Lenke til kommentar
stiber Skrevet 7. november 2005 Del Skrevet 7. november 2005 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå