RMS123
Gebruiker
- Lid geworden
- 15 nov 2009
- Berichten
- 873
Hallo,
Ik ben een zoekfunctie voor een site aan het maken, die werkt nu, maar ik wil hem iets uitbreiden.
Wat de zoekfunctie als eerste doet is alles zoekwoorden los maken van elkaar dmv de explode functie op de spaties.
Alleen wat bijv. ook in google kan is naar ["a b c"] zoeken (dus met quotes eromheen), ipv naar [a b c], het resultaat is dat dan wordt gezocht naar a b c als 1 woord, ipv als 3 woorden.
Wat dus moet gebeuren is:
1. de string komt binnen, wordt getrimed, ge lowercased etc.
2. de quoted text wordt eruitgefilterd, in de array met zoekwoorden gezet, en vervolgens UIT de zoekstring gehaald.
3. de string (waar dus geen quotes meer in staan) wordt op spaties gesplit.
stap 2 op andere topics aanbevolen werd http://php.net/manual/en/function.preg-match.php aanbevolen voor dit soort zaken, alleen daar kom ik er nog niet helemaal uit, omdat ik nooit met deze functie heb gewerkt en er eigenlijk niet veel van snap.
Kan iemand mij opweg helpen? en is het hiermee ook mogelijk om meerdere quoted zoekteremen te gebruiken?
alvast bedankt.
PS: mij alternatief waar ik eerst mee bezig ben geweest is:
Maar dit is niet een bepaald bug-vrije code
Ik ben een zoekfunctie voor een site aan het maken, die werkt nu, maar ik wil hem iets uitbreiden.
Wat de zoekfunctie als eerste doet is alles zoekwoorden los maken van elkaar dmv de explode functie op de spaties.
Alleen wat bijv. ook in google kan is naar ["a b c"] zoeken (dus met quotes eromheen), ipv naar [a b c], het resultaat is dat dan wordt gezocht naar a b c als 1 woord, ipv als 3 woorden.
Wat dus moet gebeuren is:
1. de string komt binnen, wordt getrimed, ge lowercased etc.
2. de quoted text wordt eruitgefilterd, in de array met zoekwoorden gezet, en vervolgens UIT de zoekstring gehaald.
3. de string (waar dus geen quotes meer in staan) wordt op spaties gesplit.
stap 2 op andere topics aanbevolen werd http://php.net/manual/en/function.preg-match.php aanbevolen voor dit soort zaken, alleen daar kom ik er nog niet helemaal uit, omdat ik nooit met deze functie heb gewerkt en er eigenlijk niet veel van snap.
Kan iemand mij opweg helpen? en is het hiermee ook mogelijk om meerdere quoted zoekteremen te gebruiken?
alvast bedankt.
PS: mij alternatief waar ik eerst mee bezig ben geweest is:
PHP:
$quotedparts = explode("\"", $zoekstring);
$stringNIETquoted = "";
$stringWELquoted = "";
$i = 0;
foreach ($quotedparts as $quotedpart) {
if ($i & 1 == 1) {
$stringNIETquoted .= $quotedpart;
} else {
$stringWELquoted .= $quotedpart;
}
$i++;
}