Hallo,
Ik ben bezig een set statistieken scriptjes te maken, waarmee ik onder meer wil bekijken op welke zoekwoorden is gezocht door mensen die via searchengines op de site komen.
Ik kijk dus naar de referrer, het domein ervan en vervolgens of die in mijn database met domeinen van searchengines voorkomt. Ik heb bij iedere searchengine ook de variabele die ze gebruiken voor de zoektermen in de query_string (bijvoorbeeld "q", "search" of "search_for"). Op die manier heb ik dus de zoektermen waarop gezocht is.
Nu sla ik in principe de termen apart op, alleen wil ik meerdere termen die tussen aanhalingstekens staan als geheel opslaan. Oftewel
wordt 6 entries, en
wordt er 1.
Ik probeer dus iets te verzinnen om dit te matchen. Nu is het me op zich gelukt om het bovenstaande te bereiken op deze manier:
De zoektermen komen dus in Array $searchterms.
Maar, waar ik dus niet uit kom; wat nou als een gebruiker zowel termen tussen aanhalingstekens heeft staan als erbuiten, bijvoorbeeld:
Ik dacht dus aan een regex te gebruiken als deze
maar ik weet dus niet precies of dit wel doet wat ik wil, en zo ja hoe ik het uit de array $multiTerms kan trekken.
Ik hoop dat mijn probleem een beetje duidelijk is.
Thx
Ik ben bezig een set statistieken scriptjes te maken, waarmee ik onder meer wil bekijken op welke zoekwoorden is gezocht door mensen die via searchengines op de site komen.
Ik kijk dus naar de referrer, het domein ervan en vervolgens of die in mijn database met domeinen van searchengines voorkomt. Ik heb bij iedere searchengine ook de variabele die ze gebruiken voor de zoektermen in de query_string (bijvoorbeeld "q", "search" of "search_for"). Op die manier heb ik dus de zoektermen waarop gezocht is.
Nu sla ik in principe de termen apart op, alleen wil ik meerdere termen die tussen aanhalingstekens staan als geheel opslaan. Oftewel
code:
1
| naakte vrouwen met wapens en bier |
wordt 6 entries, en
code:
1
| "naakte vrouwen met wapens en bier" |
wordt er 1.
Ik probeer dus iets te verzinnen om dit te matchen. Nu is het me op zich gelukt om het bovenstaande te bereiken op deze manier:
PHP:
1
| <?if(preg_match_all("/\"(.+?)\"/", $searchstring, $multiTerms)) { foreach($multiTerms[1] as $key => $value) { $searchterms[] = $value; }}else { $searchterms = split(" |\\+|,", $searchstring);}?> |
De zoektermen komen dus in Array $searchterms.
Maar, waar ik dus niet uit kom; wat nou als een gebruiker zowel termen tussen aanhalingstekens heeft staan als erbuiten, bijvoorbeeld:
code:
1
| "naakte vrouwen" wapens bier |
Ik dacht dus aan een regex te gebruiken als deze
PHP:
1
| <?if(preg_match_all("/(.*?)\"(.+?)\"(.*?)/", $searchstring, $multiTerms)) { ...}?> |
maar ik weet dus niet precies of dit wel doet wat ik wil, en zo ja hoe ik het uit de array $multiTerms kan trekken.
Ik hoop dat mijn probleem een beetje duidelijk is.
Thx