login  Naam:   Wachtwoord: 
Registreer je!
 Forum

$_GET uit tekst

Offline shamrock - 04/12/2010 13:42
Avatar van shamrockLid Hallo,

Ik heb in een database links staan: www.test.nl/index.php?tekst=hoi

Nu wil ik eigenlijk weten wat "$_GET['tekst']" is, maar dan niet vanuit een browser maar vanuit een database gegeven.

Weet iemand hoe dit kan?

Bedankt

8 antwoorden

Gesponsorde links
Offline Dlol - 04/12/2010 14:09 (laatste wijziging 04/12/2010 14:09)
Avatar van Dlol Lid Iets in de aard van:

  1. // Haal eerst het deel achter het vraagteken uit de link
  2. $tekst = 'www.test.nl/index.php?tekst=hoi';
  3. $positie = strpos($tekst, '?');
  4. $deel2 = substr($tekst, $positie);
  5.  
  6. // Haal tekst=hoi eruit
  7. preg_match('/tekst=.*$/' ,$deel 2, $array);
  8. $gezocht = $array[1];

Ik weet niet of die regexp wel klopt aangezien ik nog wel at te leren heb over regexps, maar in ieder geval moet het met iets in die aard wel lukken denk ik.
Offline shamrock - 04/12/2010 14:41
Avatar van shamrock Lid wat ik erbij vergeten was te zetten dat een link ook: www.link.nl/test.php?tekst=hoi&cat=1&modus=4&... etc..

Is er niet een manier om snel ?tekst=waarde eruit te filteren?
Offline valles10 - 04/12/2010 15:25
Avatar van valles10 HTML interesse Ja, explode(). En je explode dan op '=' waardoor je $explode[0] dan gelijk hebt aan 'tekst' en $explode[1] gelijks is aan 'waarde'

Als je andere waarden toevoegt, net hetzelfde :d
Offline Dlol - 04/12/2010 15:32
Avatar van Dlol Lid Het beste lijkt mij om een functie te schrijven die de waarde eruit haalt, zodanig dat je die dan "snel" kunt hergebruiken.
Voorbeeld van hoe die eruit zou zien (als ik hem zou shrijven):

  1. function getUrlData($url, $value) {
  2.  
  3. $tekst = 'www.test.nl/index.php?tekst=hoi';
  4. $positie = strpos($tekst, '?');
  5. $deel2 = substr($tekst, $positie);
  6.  
  7. $data = array();
  8. $parts = explode('&', $deel2);
  9.  
  10. foreach($parts as $value) {
  11.  
  12. $arr = explode('=', $value);
  13. $data[$arr[0]] = $arr[1];
  14.  
  15. }
  16.  
  17. return $data;
  18. }


Deze array sla je dan ergens op en je kan dan makkelijk de data eruit halen via:
  1. $data = getUrlData($url);
  2. echo $data['tekst']; // Geeft normaal gezien 'hoi'


Kan dat er een fout zit qua syntax ofzo, maar het princiepe lijkt me duidelijk  
Offline avdg - 04/12/2010 15:49 (laatste wijziging 04/12/2010 15:54)
Avatar van avdg PHP gevorderde PHP.net: parse_url bevat genoeg informatie over het parsen van een url
PHP.net: parse_str bevat genoeg informatie over het parsen van een get string

 
Bedankt door: Dlol
Offline Dlol - 05/12/2010 11:30
Avatar van Dlol Lid Dat kan verdorie nog eens handig zijn  
Offline qtuutr - 11/12/2010 12:48
Avatar van qtuutr Lid Wat ik zou doen als ik zo'n string kreeg was:
1) alles tot en met het ? eruit mieteren
2) alles exploden op &
3) alles langslopen met een foreach tot de gevonden waarde (vorm is momenteel variabele=waarde)
4) de gevonden indice (deel v.e. array) opsplitsen op = en de waarde uitlezen

Dit zou ik dan in een functie zetten: function getGetValue($p_sVarname, $p_sUrl){} met return de waarde.
De functie mag je zelf schrijven, van knippen en plakken leer je erg weinig...
Offline Sitebase - 11/12/2010 13:16
Avatar van Sitebase PHP expert Bekijk eens eerst de PHP documentatie voor je vanalles ineen begint te steken.
Hier is een voorbeeld hoe je het met 2 lijnen code kan doen:

  1. parse_str(parse_url('www.link.nl/test.php?tekst=hoi&cat=1&modus=4', PHP_URL_QUERY), $query_data);
  2. echo $query_data['tekst'];
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.246s