<?php
/*
Enkelt script som fyller opp en tabell med norske postnr. og tilhørende poststeder. Siden dette er noe
man neppe vil gjøre så mange ganger i løpet av en databases liv, har jeg ikke giddet å lage noen skikkelig
klasse av dette - bare fyll inn de nødvendige verdiene i listen over variabler i begynnelsen av scriptet.
Kildefilen som inneholder postnr. og -sted må være en ren TAB-separert tekstfil, som har et postnr. og -sted
på hver linje. Postnr. og poststed må være de første verdiene på hver linje. En til enhver tid oppdatert slik
fil kan i skrivende stund hentes på http://epab.posten.no/Norsk/Nedlasting/_Files/tilbud5.txt
Tabellen du skal fylle opp bør ha kun to felter - postnr. som første felt og poststed som annet felt.

Dette scriptet kommer uten noen som helst form for bruksbegrensninger og garanti. Bruk det som du vil,
men på eget ansvar :-) Forhåpentligvis kan det spare deg litt tid.
Hvis du bruker det, hadde det vært hyggelig å få en liten melding om dette på blackwings99@hotmail.com
- særlig hvis du forbedrer det - men du er ikke forpliktet til dette.

Thomas Winther

*/

$host = ''; //navnet på maskinen databasen din ligger på
$user = ''; //ditt brukernavn på mySQL-basen
$pass = ''; //ditt passord på mySQL-basen
$db = ''; //navnet på mySQL-basen
$tabell =''; //navnet på tabellen du skal fylle med postnr. og -sted
$source = '';            //kildefilen som inneholder postnr. og -sted
$pairs = array(                    //her legger vi etter hvert de ferdige postnumrene og -stedene
    
"postnr"    => array (),
    
"poststed"    => array ()
);


if (!(
$liste = @ file("$source"))) //hent inn postnr og poststed
die ("FEIL: Finner ikke kildefilen.");

echo
'Bearbeider data...<br />';

foreach (
$liste as $linje)
{
    
$exploded = explode("\t",$linje);         //del hver linje opp i sine enkeltbestanddeler
    
$exploded = array_slice($exploded,0,2);    //fjern kommunenummer og -navn og evt. annet tjafs som kommer etter postnr. og poststed
    
foreach ($exploded as $singles)
    {
        if (
preg_match('^\d^',$singles))    //putt de enkelte bestanddeler på riktig sted
        
{
            
$pairs ['postnr'][] = $singles;
        }
        else
        {
            
$pairs ['poststed'][] = $singles;
        }
    }
}

echo
'Gjør klar til å mate databasen...<br />';

if (!(
$conn = @ mysql_connect($host,$user,$pass)))    //koble til database-host
die ("FEIL: Kan ikke koble til host.");

if (! @
mysql_select_db($db,$conn))
die (
"FEIL: Finner ikke database. $db er ikke en gyldig database på denne hosten.");

echo
'Skriver til basen...<br />';

for (
$i=0;$i>=0;$i++)        //skriv til databasen
{
    
$pnr = $pairs['postnr'][$i];
    if (!
$pnr) break;
    
$psted = $pairs['poststed'][$i];
    
$query = "INSERT INTO $tabell VALUES (" . "\"" . $pnr . "\", " . "\"" . $psted . "\")";
    
mysql_query($query,$conn);
}

echo
"Ferdig! $i rader satt inn.";

?>