login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Een bepaald stukje tekst uit een string halen (Opgelost)

Offline Raze - 26/06/2009 19:54
Avatar van RazePHP beginner Hallo,

ik ben een statistiekenscript aan het maken, en ik wil ook detecteren of de referer een zoekmachine is.
Dit werkt, maar nu wil ik weten welke termen er ingevoerd zijn in die zoekmachine.

In google is het zo: http://www.goog...q=f&oq=

nu zou ik dus via php willen weten wat er tussen 'q=' en de eerstvolgende '&' komt, maar ik weet echt niet hoe ik hieraan moet beginnen.

Ik dacht aan ereg(i) maar na een zoektocht op php.net krijg ik de indruk dat het enkel nuttig is om te kijken of er een bepaald patroon voorkomt in een string (en dan deze eventueel replaceren met ereg(i)_replace).

Is hier een php soms een bepaalde functie voor waar jullie weet van hebben?

10 antwoorden

Gesponsorde links
Offline Koen - 26/06/2009 20:11
Avatar van Koen PHP expert PHP.net: parse_url daar de querystring uithalen, en daarna met PHP.net: parse_str de q deruit halen 
Offline Raze - 26/06/2009 21:13
Avatar van Raze PHP beginner parse_url had ik al, maar parse_str lukt me niet.

Ik doe dus parse_str van zo'n volledige google-URL, en wanneer ik dan doe echo $q (q=ZOEKTERM), dan gebeurt er niets, terwijl het volgens het voorbeeld van php.net wel zo moet.  

mijn code:
  1. parse_str('http://www.google.be/search?hl=nl&q=zoekterm&btnG=Google+zoeken&meta=&aq=f&oq=');
  2. echo $q;
Offline Koen - 26/06/2009 23:01
Avatar van Koen PHP expert Heb je gelezen wat ik zei dan?

Eerst de query string eruit halen met parse_url
, daarna pas parse_str daarop toepassen!
Offline Raze - 27/06/2009 15:06
Avatar van Raze PHP beginner lol idd maar ik heb een typfout gemaakt want ik doe éérst parse_url (niet parse_str gelijk in mijn vorige post). en ik zie het nu pas omdat je daar op wijst.

maar die parse_str lukt me dus niet, ook niet die $q terwijl ik echt niet merkt wat ik fout doe (volgens php.net)  
ik krijg geen foutmelding of zo, gewoon niets te zien 
ook niet in de broncode
Offline kickasgamer - 27/06/2009 16:57
Avatar van kickasgamer PHP ver gevorderde en de error reporting staat op ? miss dat er wel error's zijn maar dat ze niet getoond worden 
Offline avdg - 27/06/2009 17:05 (laatste wijziging 27/06/2009 17:11)
Avatar van avdg PHP gevorderde Effe rap zelf wat code geschreven:
  1. $array = null; //ter veronderstelling dat $array niets bevat - nutteloos in echte code
  2. $get = parse_url('http://www.google.be/search?hl=nl&q=zoekterm&btnG=Google+zoeken&meta=&aq=f&oq=', PHP_URL_QUERY)
  3. parse_str($get, $array);
  4.  
  5. if (isset($array['q'])) {
  6. //do something
  7. }


Ik gebruik bij voorkeur arrays, om te voorkomen dat er globale variabelen worden overschreven

$array is de variabel waar het resultaat in terecht komt
Offline Martijn - 27/06/2009 19:16 (laatste wijziging 27/06/2009 20:09)
Avatar van Martijn Crew PHP
  1. $url = "http://www.google.be/search?hl=nl&q=zoekterm&btnG=Google+zoeken&meta=&aq=f&oq=";
  2. $array = explode("&q",$url);
  3. $array = explode("&",$array[1]);
  4. $q = $array[0];
Offline Koen - 27/06/2009 19:41 (laatste wijziging 27/06/2009 19:44)
Avatar van Koen PHP expert
  1. <?php
  2. $parse_url = parse_url('http://www.google.be/search?hl=nl&q=zoekterm&btnG=Google+zoeken&meta=&aq=f&oq=');
  3. parse_str($parse_url['query'], $array);
  4. var_dump($array);

=>
  1. array(6) {
  2. ["hl"]=>
  3. string(2) "nl"
  4. ["q"]=>
  5. string(8) "zoekterm"
  6. ["btnG"]=>
  7. string(13) "Google zoeken"
  8. ["meta"]=>
  9. string(0) ""
  10. ["aq"]=>
  11. string(1) "f"
  12. ["oq"]=>
  13. string(0) ""
  14. }


Jouw code werkt trouwens niet, DeviourSoul 
Offline Martijn - 27/06/2009 20:10
Avatar van Martijn Crew PHP nu wel als het goed is. Stond een ? waar een & moest
Offline Raze - 29/06/2009 16:46
Avatar van Raze PHP beginner it works!  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.249s