Esempio n. 1
0
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;
}