17. november 2007 - 13:53
Der er
4 kommentarer og 1 løsning
Tjekke om string indeholder to ord i PHP
Jeg har en string, som jeg gerne vil have tjekket om indeholder to ord i vilkårlig rækkefølge, og muligvis med andre ord imellem dem. Jeg benytter preg_match. Fx hvis jeg søger på "dig hej", så skal den finde et true resultat, selvom string hedder "hej med dig".
Annonceindlæg fra Conscia
17. november 2007 - 20:23
#1
Sådan? $tekst = 'Fx hvis jeg søger på "dig hej", så skal den finde et true resultat, selvom string hedder "hej med dig".'; $ord1 = 'hej'; $ord2 = 'dig'; $pattern = '/^(?=.*?\b' . $ord1 . '\b)(?=.*?\b' . $ord2 . '\b).*$/i'; if (preg_match($pattern, $tekst)) { // Yeah! } else { // Desværre... }
17. november 2007 - 22:53
#4
Det fungerer, smid et svar (: Jeg har lavet min funktion, så den går ind og erstatter "AND" i søgeteksten med "\b(?=.*?\b", og så tilføjer den det i en preg_match: $q = str_replace(' AND ', '\b)(?=.*?\b', $q); $q = '^(?=.*?\b' . $q . '\b).*$'; if(preg_match("/" . $q . "/is", $string)) {