Hallo,

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
Hoe de zoekwoorden in de url staan, is voor elke zoekmachine en elke website verschillend. Bij google staan de zoekwoorden bijvoorbeeldin het in het gedeelte achter 'q='.

Met behulp van een regulieren expressie en preg_match() kun je heel eenvoudig die zoekwoorden uit die url halen.

edit: een voorbeeldje:
<?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].'"';
?>
ik heb dara mee zitten klooien maar kwam er niet uit hoe ik die functie precies moest scrijven. Zou je een voor beeld kunnen maken als dat niert te veel werk is zodat ik dat kan proberen?

groeten,

Gijs
Zie de edit in mijn vorige post ;-)
dank je voor de snelle reactie. Helaas lijkt het als of mijn string dan leeg is. krijg de volgende foutmelding:

Warning: preg_match(): Compilation failed: nothing to repeat at offset 2 in /var/www/html/admin1/google.php on line 19
-------->Zoekstring: ''
na een toevalstreffer heb ik hem aan de praat gekregen. Thanks!!!

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
De regex die ik gebruik zit als volgt in elkaar:

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.

Reageren