Dette er noget udklip fra noget kode jeg har som laver livesearch i en XML fil med noget tekst i....
$q = søgestring
$a=$x->item($i)->getElementsByTagName('des');
if (stristr($a->item(0)->childNodes->item(0)->nodeValue,$q))
Det virker fint men problemet er at hvis min tekst er:
"Dette er en blomst lavet af gummi" og man så søger på "gummi blomst" så finder den ikke noget, fordi at de ikke står sammenhængende i min tekst....
Hvordan kan jeg forbedre stristr($a->item(0)->childNodes->item(0)->nodeValue,$q så den kan finde fx. 3 ord selv om det ikke står sammenhængende i teksten ?
Ja, præcis som coderdk siger. Du kan så lægge dem ind i et associativt array (fx $resultater som der også bliver nævnt), hvor du så lægger én til elements værdi, hver gang du finder en match. Til sidst vil du derefter kunne sortere dit array baseret på værdien, så de resultater med flest matchende ord vil komme først.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.