Scripts

Postcode/huisnummer naar adres/woonplaats

Dit script genereert straat en woonplaats vanuit postcode en huisnummer Vraag eerst een gratis registratiekey aan op https://www.postcodeapi.nu/ (gratis tot 200 calls/dag) vul deze key in op regel 30 van het script roep het script aan als http://www.xxxxxx.nl/postcode.php?postcode=5211je&nummer=1 Het script zal antwoorden met [{"city":"'s-Hertogenbosch","street":"Bastion Oranje","province":"Noord-Brabant","lat":51.6840973,"lon":5.3029373}] Nu moet ik nog een manier vinden om dit via AJAX automatisch in een formulier te verwerken

postcode.php
<?PHP
$postcode = $_GET['postcode'];
$nummer = $_GET['nummer'];
$postcode = str_replace(' ', '', $postcode);
$nummer = str_replace(' ', '', $nummer);
$postcode = strtoupper($postcode);
$OK = 0;
if( preg_match("/^[1-9]{1}[0-9]{3}[A-Z]{2}$/", $postcode)) {
        $OK = 1;
    } else {
        $OK = 0;
    }
	
if ($OK==1){
	if( preg_match("/^[0-9]*$/",  $nummer)) {
        $OK = 1;
    } else {
        $OK = 0;
    }
}

// Uncomment fot test
// echo "Postcode: ".$postcode ;
// echo "<br>";
// echo "Nummer: ".$nummer;

if ($OK==1) {
// De headers worden altijd meegestuurd als array
$headers = array();
$headers[] = 'X-Api-Key: <Hier eigen registratiekey invullen>';

// De URL naar de API call
$url = 'https://postcode-api.apiwise.nl/v2/addresses/?postcode='.$postcode.'&number='.$nummer;

 $curl = curl_init($url);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

// Indien de server geen TLS ondersteunt kun je met 
// onderstaande optie een onveilige verbinding forceren.
// Meestal is dit probleem te herkennen aan een lege response.
// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

// De ruwe JSON response
$response = curl_exec($curl);

// Gebruik json_decode() om de response naar een PHP array te converteren


$data = json_decode($response);

// Uncomment fot test
/*
$addresses = $data->_embedded->addresses;
$address = $addresses[0];
$street = $address->street;
$city = $address->city->label;
Echo "<BR>Street: ";
ECHO $street;
Echo "<BR>City: ";
ECHO $city;
 */
$addressdata = $data->_embedded->addresses[0];
if ($addressdata)
{
	$city = $addressdata->city->label;
	$street = $addressdata->street;
	$province = $addressdata->province->label;
	$lat = $addressdata->geo->center->wgs84->coordinates[1];
	$lon = $addressdata->geo->center->wgs84->coordinates[0];
	$return_data[]= array("city"=>$city,"street"=>$street,"province"=>$province,"lat"=>$lat,"lon"=>$lon);
	header('Content-type:application/json;charset=utf-8');
	echo json_encode($return_data);
}
curl_close($curl);
    } else {
ECHO "<BR>verkeerde parameters";
    }

?>

Reacties

0
Nog geen reacties.