Created
April 26, 2023 11:22
-
-
Save livarb/f43ee4abdfdbbca668d4287bcea4f7f7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
header("Access-Control-Allow-Origin: *"); | |
header('Content-Type: application/json; charset=utf-8'); | |
$brregFylkeskommunerUrl = "https://data.brreg.no/enhetsregisteret/api/enheter?organisasjonsform=FYLK&size=10000"; | |
$brregKommunerUrl = "https://data.brreg.no/enhetsregisteret/api/enheter?organisasjonsform=KOMM&size=10000"; | |
$dataRaw = getHTTPCached($brregFylkeskommunerUrl); | |
$fylkeskommuner = json_decode($dataRaw["content"], true)["_embedded"]["enheter"]; | |
$debug = array(); | |
// Generere fylker ut frå fylkeskommuner | |
$fylker = array(); | |
foreach ($fylkeskommuner as $fylkeskommune) { | |
// Dropp forhåndsregistreringar | |
if (strpos($fylkeskommune["navn"], "FORHÅNDSREGISTRERING") != null) continue; | |
$fylke = array(); | |
$fylke["namn"] = str_replace(" FYLKESKOMMUNE", "", $fylkeskommune["navn"]); | |
$fylkesnr = substr($fylkeskommune["forretningsadresse"]["kommunenummer"], 0, 2); | |
if ($fylke["namn"] == "VIKEN") $fylkesnr = "30"; | |
if ($fylke["namn"] == "AKERSHUS") $fylkesnr = "32"; | |
$fylke["nr"] = $fylkesnr; | |
$fylker[] = $fylke; | |
} | |
// Legg til Oslo som fylke manuelt | |
$fylker[] = array("namn" => "OSLO", "nr" => "03"); | |
// Sortere fylker alfabetisk på namn | |
usort($fylker, function ($fylke1, $fylke2) { | |
return $fylke1["namn"] <=> $fylke2["namn"]; | |
}); | |
// Hent kommuner | |
$dataRaw = getHTTPCached($brregKommunerUrl); | |
$kommuner = json_decode($dataRaw["content"], true)["_embedded"]["enheter"]; | |
// Bygg opp hierarki | |
$kommunalSektor = array(); | |
$kommunalSektorKort = array(); | |
foreach ($fylker as $fylke) { | |
$kommunalSektor[$fylke["nr"]] = $fylke; | |
$kommunalSektor[$fylke["nr"]]["enheter"] = array(); | |
$kommunalSektorKort[$fylke["nr"]] = $fylke; | |
$kommunalSektorKort[$fylke["nr"]]["enheter"] = array(); | |
} | |
foreach ($fylkeskommuner as $fylkeskommune) { | |
// Dropp forhåndsregistreringar | |
if (strpos($fylkeskommune["navn"], "FORHÅNDSREGISTRERING") != null) continue; | |
// TODO: filtrere vekk eventuelle sletta enheter | |
$fylkesnr = substr($fylkeskommune["forretningsadresse"]["kommunenummer"], 0, 2); | |
// Manuell korrigering av Viken / Akershus som har forretningsadresse i Oslo | |
if ($fylkeskommune["organisasjonsnummer"] == "921693230") $fylkesnr = "30"; // Viken fylkeskommune - t.o.m. 2023 | |
if ($fylkeskommune["organisasjonsnummer"] == "930580783") $fylkesnr = "32"; // Akershus fylkeskommune - f.o.m. 2024 | |
$kommunalSektor[$fylkesnr]["enheter"][] = $fylkeskommune; | |
$kommunalSektorKort[$fylkesnr]["enheter"][] = $fylkeskommune["navn"]; | |
} | |
foreach ($kommuner as $kommune) { | |
// Dropp forhåndsregistreringar | |
if (strpos($kommune["navn"], "FORHÅNDSREGISTRERING") != null) continue; | |
// TODO: filtrere vekk eventuelle sletta enheter | |
$fylkesnr = substr($kommune["forretningsadresse"]["kommunenummer"], 0, 2); | |
$kommunalSektor[$fylkesnr]["enheter"][] = $kommune; | |
$kommunalSektorKort[$fylkesnr]["enheter"][] = $kommune["navn"]; | |
} | |
print(json_encode($kommunalSektor, JSON_PRETTY_PRINT)); | |
// For debugging - kommenter ut så det berre er ei print-linje | |
// print(json_encode($kommunalSektorKort, JSON_PRETTY_PRINT)); | |
// print( | |
// json_encode( | |
// array("debug" => $debug, "fylker" => $fylker, "kommunalSektorKort" => $kommunalSektorKort, | |
// "resten" => array_merge($kommunalSektor, $kommuner, $fylkeskommuner)), | |
// JSON_PRETTY_PRINT | |
// ) | |
// ); | |
/** | |
* NB1. Kommunar med samme namn | |
* Det er to tilfeller der to kommunar har samme namn. | |
* Pr. 25.04.2024 er det Våler og Herøy, jf. https://no.wikipedia.org/wiki/Norges_kommuner#Kommunene | |
* | |
* NB2. Endringar i fylkesnummer frå 2024 | |
* https://www.regjeringen.no/no/tema/kommuner-og-regioner/kommunestruktur/nye-kommune-og-fylkesnummer-fra-1.-januar-2024/id2924701/ | |
* | |
* NB3. Ikkje tatt høgde for å filtrere vekk gamle kommunar og fylkeskommunar. Antar org.nr. for enheter som opphøyrer frå 2024 blir liggande nokre dagar i Enhetsregisteret. | |
* TODO | |
*/ | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment