Gå til innhold

[LØST!]hente ut postnummer og poststed....


Anbefalte innlegg

har fått lastet ned en fil fra posten.no nå som inneholder alle postnummer/Steder i Norge.

Har prøvd å lage et script som kjører ut bare postnummer og poststed med enten ':' som skilletegn eller ikkenoe annet enn bare to forskjellige stringer.

 

Slik ser en linje ut:

0001 OSLO 0301 OSLO K

 

klarer å hente ut:

0001

 

Men når jeg skal hente ut 'OSLO' som ligger rett bak '0001' så vet jeg ikke helt hvordan jeg skal gjøre dette...

 

noen forslag?

 

mvh Vegard

Endret av ve_gard
Lenke til kommentar
Videoannonse
Annonse

Det er lurt å bruke en form for skilletegn istedenfor mellomrom. Og helst skilletegn som bare forekommer der skilletegnene skal forekomme i filen. Feks hvis du vil hente ut "Flere ord" så kan du ikke bruke mellomrom som skilletegn. Men heller --..-- for eksempel. :)

 

$string = "0001 OSLO 0301 OSLO K";
$del = explode(' ', $string);

echo $del[0]; // 0001
echo $del[1]; // OSLO

Lenke til kommentar

<!--

 

post.txt

-----------------------------------

0001 OSLO 0301 OSLO K

0010 OSLO 0301 OSLO F

0014 OSLO 0301 OSLO K

0015 OSLO 0301 OSLO K

0016 OSLO 0301 OSLO K

0017 OSLO 0301 OSLO K

-----------------------------------

 

-->

<?php

$input = "post.txt";

$open = fopen($filnavn, "r");

$matrise = file($input);

 

foreach($matrise as $linje){

$del = explode(' ', $linje);

echo "INSERT INTO post (postnummer, poststed) VALUES ('$del[0]', '$del[1]');<br />";

}

?>

 

Resultat:

---------------------------------

INSERT INTO post (postnummer, poststed) VALUES ('0001 OSLO 0301 OSLO K ', '');

INSERT INTO post (postnummer, poststed) VALUES ('0010 OSLO 0301 OSLO F ', '');

INSERT INTO post (postnummer, poststed) VALUES ('0014 OSLO 0301 OSLO K ', '');

INSERT INTO post (postnummer, poststed) VALUES ('0015 OSLO 0301 OSLO K ', '');

--------------------------------

 

Den legger ikke merke til whitespaces... :S

 

 

mvh V

Lenke til kommentar
Gjest Slettet+142

du får prøve med det som de to over sier

<?php
$input = "post.txt";
$open = fopen($filnavn, "r");
$matrise = file($input);

foreach($matrise as $linje){
$del = explode("\t", $linje);
echo "INSERT INTO post (postnummer, poststed) VALUES ('$del[0]', '$del[1]');<br />";
}
?>

Lenke til kommentar

er tab-tegn ja. følgende fungerer:

 

PHP

<?php

$input "post.txt";

$matrise file($input);

 

foreach($matrise as $linje){

$del explode("\t"$linje);

echo "INSERT INTO post (postnummer, poststed) VALUES ('$del[0]', '$del[1]');<br />";

}

?>

 

(jeg har lastet ned den filen det er spørsmål om og testet)

 

edit: damn, leste ikke innholdet i forrige post godt nok. Men nå har du det bekreftet i hvertfall :D

 

hva gjør den fopen()-kommandoen der den er? Virker både misbrukt og feilplassert ut, men er kanskje en del av ett større script?

Endret av ventle
Lenke til kommentar


$input = "post.txt";
$matrise = file($input);

 

hvorfor ikke bare bruke... $matrise = file("post.txt");

 

oO

 

Edit; og vær så snill.. Forrige post var 2 timer før du postet. Og du postet nestet akuratt samme script :hmm:

Og hvis du lurer på noe, er det lurt å sjekke http://php.net først.

Endret av Ståle
Lenke til kommentar

som sagt, jeg leste ikke innholdet i nevnte post godt nok, er tilfeldig at vi skrev det samme :p

 

jeg vet selvfølgelig hva fopen brukes til, men jeg lurer på hva den gjør akkurat der i scriptet, for den har tilsynelatende ingen funksjon (og den følges heller ikke av en fclose(), hvilket er en alvorlig sikkerhetsbrist, men php er såvidt jeg vet laget så idiotsikkert at det stenger åpne filer når scriptet avsluttes uansett).

Endret av ventle
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...