function get_postcode_data($postcode, $mcapi2 = true) { if (Postcode::isValidFormat($postcode)) { $postcode = Postcode::getUnit($postcode); $postArea = Postcode::getArea($postcode); $postDistrict = Postcode::getDistrict($postcode); // get data from MapIt api $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://mapit.mysociety.org/postcode/" . urlencode($postcode)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $mapitData = curl_exec($ch); if (200 == curl_getinfo($ch, CURLINFO_HTTP_CODE)) { $mapitData = json_decode($mapitData, true); $wmcCode = $mapitData['shortcuts']['WMC']; $wardCode = $mapitData['shortcuts']['ward']; $councilCode = $mapitData['shortcuts']['council']; // need to search $mapitData for EUR area as no shortcode is available $regionAreaData = array_filter($mapitData['areas'], function ($ar) { return $ar['type'] == 'EUR'; }); $regionAreaData = array_shift($regionAreaData); // debug code for future reference // file_put_contents('/home/national/logs/debug.log', print_r($regionAreaData, true)); $region = $regionAreaData['name']; $constituency = $mapitData['areas'][(string) $wmcCode]['name']; $ward = $mapitData['areas'][(string) $wardCode]['name']; $council = $mapitData['areas'][(string) $councilCode]['name']; } $cameocode = cameoCode($postcode); } if ($mcapi2 == true) { $groups = array(array('name' => 'Region', 'groups' => array($region)), array('name' => 'Send me', 'groups' => array('Weekly Updates', 'Newsletters'))); } else { $groups = array(array('name' => 'Region', 'groups' => $region), array('name' => 'Send me', 'groups' => 'Weekly Updates, Newsletters')); } $postcode_data = array('GROUPINGS' => $groups, "POSTCODE" => $postcode, "POSTAREA" => $postArea, "DISTRICT" => $postDistrict, "REGION" => $region, "CONSTNAME" => $constituency, "WARD" => $ward, "COUNCIL" => $council, "CAMEOCODE" => $cameocode); return $postcode_data; }