Informatie van andere website ophalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Simon

simon

01/08/2009 23:29:00
Quote Anchor link
Hoi,

Ik heb een probleem waar ik niet uit kom.

Op mijn eigen homepage typt iemand zijn postcode in, dit sla ik op
met php in mijn sql database. No problem so far!
Nu wil ik iets gaan doen met die postcode ik wil nl de gps coordinaten ophalen van website http://www.gpscoordinaten.nl/bepaal-gps-coordinaten.php
Handmatig typ ik mijn postcode in en druk op de submit button "ga naar"
Er verschijnt een resultaat met de door mijn benodigde gps coordinaten.
(handmatig dus geen probleem)

Nu mijn probleem.
Hoe krijg ik mijn postcode vanaf mijn website op die van http://www.gpscoordinaten.nl/bepaal-gps-coordinaten.php
en hoe haal ik de gps coordinaten van die website om ze in mijn database
te verwerken.

Als het even kan dan wil ik de focus op mijn website houden, dus ophalen
zonder dat iemand er iets van merkt, niet dat het geheim is maar ik zou het
persoonlijk zelf irritant vinden als je van de ene pagina naar de andere
geslingerd wordt.

Graag even een paar hints zodat ik even vooruit kan.

Bij voorbaat dank.

Simon
 
PHP hulp

PHP hulp

29/11/2024 04:56:30
 
Derk nvt

Derk nvt

02/08/2009 00:17:00
Quote Anchor link
Je moet de coordinaten uit de website vissen en zelf in je website gebruiken. Met file_get_contents kan je dan dezelfde request doen als de website doet op een paginaatje. Hier haal je dan de coordinaten uit en gebruik je.
Gewijzigd op 01/01/1970 01:00:00 door Derk nvt
 
Derk nvt

Derk nvt

02/08/2009 00:34:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$postcode
='3991GJ';
$data=file_get_contents('http://maps.google.com/maps/geo?output=json&oe=utf-8&q='.$postcode.'%20netherlands');
preg_match('/"coordinates": \[ ([0-9\.]+), ([0-9\.]+), 0 \]/is',$data,$match);
print_r($match);
?>


Heb het voor je uitgeprogrammeerd...
in $match[1] zit een coordinaat en $match[2].
Nu ben ik niet zo into coordinaten en kreeg een hele lijst (nouja 6) met dingen naar mijn hoofd geslingerd en wist niet welke je wilde hebben.

http://maps.google.com/maps/geo?output=json&oe=utf-8&q=3991GJ%20netherlands

is de request die gedaan wordt.

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Derk nvt
 

02/08/2009 11:34:00
Quote Anchor link
Wat wat je nu doet mag dus niet:
gpscoordinaten.nl disclaimer:
gebruik
Alle informatie op deze site is uitsluitend voor eigen gebruik. Het is niet toegestaan om de informatie op deze site verder te verspreiden, op welke wijze dan ook, zonder schriftelijke toestemming van ARiS websitewerk.

copyright
Alle intellectuele eigendomsrechten met betrekking tot deze website, www.gpscoordinaten.nl, berusten bij ARiS websitewerk.
Het is niet toegestaan om deze gehele website, of gedeeltes hiervan (b.v. scripts, foto's), voor welk gebruik dan ook te kopiëren of te vermenigvuldigen, op welke wijze dan ook, zonder schriftelijke toestemming van ARiS websitewerk.

Je moet kijken of ze iets van een api hebben.
Overigs kun je kijken naar google maps. Dat gebruiken zij ook. Als ik bijvoorbeeld daar 9742 NE invoer dan krijg ik 53.22886, 6.54169 als resultaat, wat ongeveer klopt (want postcode kan een groot gebied zijn he).
En volgens mij moet er zo'n soort script ook hier zijn gepost.
Gewijzigd op 01/01/1970 01:00:00 door
 
John Doe

John Doe

02/08/2009 11:48:00
Quote Anchor link
kijk dan naar de post boven je er is een alternatief
@derk
Je kan beter cURL hier gebruiken das een stuk sneller

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
function
getpostcode($postcode) {
    $url = 'http://maps.google.com/maps/geo?output=json&oe=utf-8&q='.$postcode.'%20netherlands';
    $startat = '"coordinates": [ ';
    $stopat = ", 0 ]";
    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $start = curl_exec($ch);
    curl_close($ch);
    $exploded = explode($startat,$start);
    $exploded = explode($stopat,$exploded[1]);
    $result = str_replace('<br />','',nl2br($exploded[0]));
    return $result;
}

if (getpostcode($_GET['postcode'])!=''){
echo "De coordinaten zijn: ".getpostcode($_GET['postcode']);
}
else{
echo 'De postcode klopt niet';
}

?>


zo dus er klopt alleen iets niet als je weet wat zeg het even

Hier kan je het testen
http://voogsgerd.nl/lolzzzman/phphulp/postcodetocoordinaten.php?postcode=3902
Gewijzigd op 01/01/1970 01:00:00 door John Doe
 
Derk nvt

Derk nvt

02/08/2009 22:14:00
Quote Anchor link
@carl, als je had gekeken, de site gpscoordinaten.nl maakt gebruik van de google maps api. Deze gebruikt mijn script dus ook. Hier heeft gpscoordinaten.nl geen zeggen over.

@Daniel, werkt goed bij mij. Was altijd voorstander van jou explode plan, maar ben toch overgestapt op regular expressions. Mocht het fout gaan dan geeft mijn functie niks meer terug, die van jou geeft dan (mogelijk) foute informatie terug. Beetje jammer...

Voor de rest, is curl sneller als file_get_contents? Keertje testen... Oh en voor curl, moet zijn host deze wel ondersteunen...
Gewijzigd op 01/01/1970 01:00:00 door Derk nvt
 
Simon

simon

03/08/2009 01:36:00
Quote Anchor link
Hoi,

Alvast bedankt voor jullie enthousiaste reacties

Een reactie op het script van Derk: , ik heb de code gekopieerd in een php file
maar krijg als antwoord : Array ( )
http://simonbuijs9999.ifastnet.com/coordinaten%20opvragen%20simpel.php
Wat heb ik verkeerd gedaan?

Een reactie op het script van Derk:
Het script volgens je link werkt goed (op jouw website) echter
krijg ik een foutmelding omdat ik geen postcode ingeef (denk ik)
Hoe pas ik het script aan zodat ik toch een goed antwoord krijg.
ik zal wel een dombo zijn hoor, zal je wel denken.

Bij voorbaat dank voor jullie enthousiaste reakties

Met vr groet
Simon Buijs
 
Simon

simon

04/08/2009 23:56:00
Quote Anchor link
Hoi,
Ik ben al 2 avonden bezig met onderstaande code

Aan de code heb ik $postcode='1628DC'; als variable toegevoegd

Ik krijg een foutmelding dat er op regel 21

Notice: Undefined index: postcode in /home/a5532984/public_html/coordinaten opvragen met CURL.php on line 21

Waarom lukt het mij niet , wat is er mis met regel 21

Mvg Simon

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$postcode
='1628DC';
ini_set('display_errors',1);
error_reporting(E_ALL);
function
getpostcode($postcode) {
    $url = 'http://maps.google.com/maps/geo?output=json&oe=utf-8&q='.$postcode.'%20netherlands';
    $startat = '"coordinates": [ ';
    $stopat = ", 0 ]";
    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $start = curl_exec($ch);
    curl_close($ch);
    $exploded = explode($startat,$start);
    $exploded = explode($stopat,$exploded[1]);
    $result = str_replace('<br />','',nl2br($exploded[0]));
    return $result;
}

if (getpostcode($_GET['postcode'])!=''){
echo "De coordinaten zijn: ".getpostcode($_GET['postcode']);
}
else{
echo 'De postcode klopt niet';
}

?>
 
PHP erik

PHP erik

04/08/2009 23:59:00
Quote Anchor link
Als je geen ?postcode= in de URL hebt staan, dan bestaat $_GET['postcode'] niet. Als je dan toch $_GET['postcode'] gebruikt, zoals je op regel 21 doet, dan krijg je een error dat de $_GET-array de index 'postcode' niet kent. Je probeert dus een array-element te benaderen dat niet bestaat.

De oplossing is om altijd eerst te checken of een array-element wel bestaat, dus met:

if (isset($_GET['postcode']))

Alleen als deze inderdaad is geset dan kun je 'm gebruiken in de rest van de code.
 
Quote Anchor link
Je kan natuurlijk ook gewoon in de script database zoeken: http://phphulp.nl/php/scripts/11/1436/
 
Simon

simon

05/08/2009 01:04:00
Quote Anchor link
Hoi,

Ik dacht dat ik de postcode gedeclareerd had in regel 2
en die postcode gebruikte in regel 6

Waarom gebruikt ie mijn gedeclareerde waarde dan niet?

maw declareer ik fout?

Hoe moet ik de code aanpassen zodat ie juist werkt?

Mvg

Simon
 
- SanThe -

- SanThe -

05/08/2009 11:08:00
Quote Anchor link
getpostcode($_GET['postcode'])!='')

Hier staat dus eigenlijk
getpostcode(true)
of
getpostcode(false)
 

05/08/2009 12:11:00
Quote Anchor link
derk schreef op 02.08.2009 22:14:
@Karl, als je had gekeken, de site gpscoordinaten.nl maakt gebruik van de google maps api. Deze gebruikt mijn script dus ook. Hier heeft gpscoordinaten.nl geen zeggen over.

Dat kan je niet zo stellen. Misschien maken zij gebruik van een postcode database, en alleen van google maps api om de positie te weergeven.
Wat er achter de schermen gebeurt kan jij niet zien. Dus daar weet je niks vanaf.
En als zij gebruik maken van google maps api, waarom kan jij dat dan ook niet?
 
Simon

simon

05/08/2009 23:44:00
Quote Anchor link
Hoi,

Ik heb het na een paar dagen uiteindelijk met behulp van jullie voor elkaar
gekregen om de coordinaten van een postcode op te vragen en te tonen in
webpagina.

Hieronder het werkend script.

Ik wil jullie voor jullie bijdrage hartelijk danken.

Met vr groet

Simon




Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$postcode
='1628DC';    
ini_set('display_errors',1);
error_reporting(E_ALL);
function
getpostcode($postcode) {
    $url = 'http://maps.google.com/maps/geo?output=json&oe=utf-8&q='.$postcode.'%20netherlands';
    $startat = '"coordinates": [ ';
    $stopat = ", 0 ]";
    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $start = curl_exec($ch);
    curl_close($ch);
    $exploded = explode($startat,$start);
    $exploded = explode($stopat,$exploded[1]);
    $result = str_replace('<br />','',nl2br($exploded[0]));
    return $result;
}

if (getpostcode($postcode)!=''){
echo 'The coordinates  are: '.getpostcode($postcode);
}
else{
echo 'The Zipcode is not correct';
}

?>
 
Joey Drieling

Joey Drieling

06/08/2009 00:39:00
Quote Anchor link
warom doe je neit output=xml en dan de cordinaten ophaalen met simplexml.

EDIT: Zie url.
http://maps.google.com/maps/geo?output=xml&oe=utf-8&q=2595AA

Geeft
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://earth.google.com/kml/2.0"><Response>
  <name>2595AA</name>
  <Status>
    <code>200</code>
    <request>geocode</request>
  </Status>
  <Placemark id="p1">
    <address>2595AA Den Haag, Nederland</address>
    <AddressDetails Accuracy="5" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>NL</CountryNameCode><CountryName>Nederland</CountryName><AdministrativeArea><AdministrativeAreaName>Zuid-Holland</AdministrativeAreaName><Locality><LocalityName>Den Haag</LocalityName><PostalCode><PostalCodeNumber>2595AA</PostalCodeNumber></PostalCode></Locality></AdministrativeArea></Country></AddressDetails>
    <ExtendedData>
      <LatLonBox north="52.0847259" south="52.0784307" east="4.3266529" west="4.3203576" />
    </ExtendedData>
    <Point><coordinates>4.3235052,52.0815783,0</coordinates></Point>
  </Placemark>
</Response></kml>
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 
Simon

simon

06/08/2009 01:20:00
Quote Anchor link
hoi Joey

Het is omdat ik dit via websites te gelezen had dat CURL
de snelste antwoorden gaf.

Als ik goed kijk dan heb zie ik een script wat al antwoorden in zich heeft.
Als ik je link gebruik dan krijg ik het volgende te zien.

<kml>
&#8722;
<Response>
<name>2595AA</name>
&#8722;
<Status>
<code>610</code>
<request>geocode</request>
</Status>
</Response>
</kml>

en niet meer.

Ik wil het wel even proberen
maar dan moet je even je code die voorstelt even laten zien.

mvg

Simon
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.