[php] Data uit bestand inladen in een database

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben op zoek naar een manier om een lap data in een database te zetten. Het zal me wel lukken om gegevens die in een string staan in de database te krijgen. Hier een voorbeeld van de data (die zet ik gewoon in het script zelf).

1011AA,4.905987,52.378268
1011AB,4.906455,52.377953
1011AC,4.906455,52.377953
1011AD,4.905866,52.376333
1011AE,4.906326,52.376119
1011AG,4.904231,52.374863
1011AH,4.904231,52.374863
1011AJ,4.904231,52.374863
1011AK,4.904231,52.374863
1011AL,4.902149,52.368852

Ik zit zelf te denken aan een wile loop die tekens een regel pakt en dat in de wile-loop een regel wordt ontleed met split: list($postcode, $lat, $long) = split (",", $regel);. Dit laatste zal wel lukken, maar het probleem is hoe dat ik die wile-loop zo maakt dat die steeds een andere regel pakt uit het stuk data. Alvast bedankt voor jullie antwoord.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Als je het nou eens in een textfile zet dan kun je iets als dit gebruiken:
PHP:
1
2
3
4
5
6
7
<?PHP
$array=file('postcode.txt');
foreach($array AS $line){
    $linedata=explode(',', $line);
    print_r($linedata);
}
?>

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
PHP:
1
$regels = explode("\n", $data);

(Ik weet overigens niet zeker of explode wel op een \n teken kan splitten, mischien moet je naar preg_split kijken)

Wat je ook zou kunnen doen is dit:
PHP:
1
2
3
4
5
6
7
8
preg_match_all("/([0-9]{4}[A-Z]{2}),([0-9\.]+),([0-9\.]+)/", $data, $matches);

foreach ( $matches as $line )
{
  print $line[1]; // postcode
  print $line[2]; // lat
  print $line[3]; // lang
}

(eigenlijk moet je gewoon explode gebruiken, dit is veel langzamer :P)

[ Voor 52% gewijzigd door Michali op 16-01-2004 15:03 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het script aan de praat, op de manier van djluc. Bedankt voor jullie antwoord.