google zoektermen uit de url halen
Ik bewaar alle url's van mijn bezoekers zodat ik kan zien op welke zoektermen mijn site gevonden wordt.
Weet iemand hoe ik de zoektermen uit zo'n string kan halen?
ik zal hieronder een paar voorbeelden geven van url's:
http://www.upclive.nl/Zoeken/Internet_en_upc_live/Google/Zoekresultaten/?hl=&st=simple&fi=0&q7=&q1=pcooz&l1=web
http://www.planet.nl/planet/show?id=64949&sc=762321&googleq=q%3Dpicooz%2Bsky%2Bchallenger%26lr%3Dlang_nl%26start%3D10
http://www.google.nl/search?svnum=10&um=1&hl=nl&safe=active&q=flytech%20dragonfly&ie=UTF-8&oe=UTF-8&sa=N&tab=iw
http://www.google.nl/search?svnum=10&um=1&hl=nl&q=picooz&ie=UTF-8&oe=UTF-8&sa=N&tab=iw
http://www.google.nl/search?sourceid=navclient&ie=UTF-8&rlz=1T4WZPA_enNL239NL240&q=silverlit+apeldoorn
groeten gijs
Met behulp van een regulieren expressie en preg_match() kun je heel eenvoudig die zoekwoorden uit die url halen.
edit: een voorbeeldje:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sUrl = 'http://www.google.nl/search?svnum=10&um=1&hl=nl&q=picooz&ie=UTF-8&oe=UTF-8&sa=N&tab=iw';
preg_match('_(?|&)q=([^&]+)_i', $sUrl, $aZoekstring);
echo 'Zoekstring: "'.$aZoekstring[1].'"';
?>
$sUrl = 'http://www.google.nl/search?svnum=10&um=1&hl=nl&q=picooz&ie=UTF-8&oe=UTF-8&sa=N&tab=iw';
preg_match('_(?|&)q=([^&]+)_i', $sUrl, $aZoekstring);
echo 'Zoekstring: "'.$aZoekstring[1].'"';
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
groeten,
Gijs
Zie de edit in mijn vorige post ;-)
Warning: preg_match(): Compilation failed: nothing to repeat at offset 2 in /var/www/html/admin1/google.php on line 19
-------->Zoekstring: ''
zou je mij de regularexpression kunnen uitellegen die je begruikt? heb wel vaker gezocht op internet maar vind het best lastig te begrijpen.
Ik heb ook nog linkjes met 2 of meer zoektermen. meestal bestaat het dan uit een % en een nummer.
bijv. &q=PicooZ+R%2fC+Helikopter+Battle+Pack
mag worden: PicooZ RC Helikopter Pack
groeten Gijs
Gewijzigd op 01/01/1970 01:00:00 door gijs
De _ op het begin en eind stellen de delimiters voor die de preg_match() functie nodig heeft rond de regex. Vervolgens zorgt '(?|&)q=' ervoor dat strings gematched worden die beginnen met ?q= of &q=.
([^&]+) matched alle tekens die geen & zijn, dus alles in de url zolang er geen volgende GET variabele komt. De pattern modifier 'i' zorgt er tenslotte voor dat de regex case-insensitive is. Dus ook ?Q= en &Q= zullen voldoen...
Het uitpluizen van de zoekstring kun je verder eenvoudig met functies als urldecode() en eventuele str_replace()...
super, bedankt.