22. april 2010 - 19:40
Der er
9 kommentarer
Hente tekstfil og indsætte den i mysql db
Hej Eksperter. Jeg vil gerne gemme indholdet af en tekstfil på et andet domæne, og gemme den i min mysql database. De to tables har ens felter. Tekstfilen indeholder en eksport af en mssql database, og jeg henter ID, adresse, medlemsnr, og tlfnr. ud. Outputtet ser sådan ud (ren tekst): 1 adresse1 medlemsnr1 tlfnr1 2 adresse2 medlemsnr2 tlfnr2 3 adresse3 medlemsnr3 tlfnr3 osv. osv. Jeg kan bestemme hvordan outputtet skal være på tekstfilen, men jeg har valgt at lave linjeskift (<br>), da felterne kan indeholde komma, og så dur det ikke som seperator. Jeg henter filens indhold med file_get_contents() og har eksperimenteret med at explode det i et array, men det hele bliver rodet sammen. Er nogen friske på et kodeeksempel?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
22. april 2010 - 20:28
#1
Har du prøvet med \n eller \r\n? explode("\n",$text); explode("\r\n",$text);
22. april 2010 - 20:32
#2
Og tænk på at det også kan være: <BR> <BR /> <br /> osv.
22. april 2010 - 20:58
#3
du kan jo prøve at udskrive indholdet af tekstfilen, så du kan se hvad præcist der står som separator...
22. april 2010 - 22:06
#4
Splazz - som sagt kan jeg selv bestemme hvordan outputtet skal være, og jeg har sat <BR> som seperator. Jeg kan bare ikke finde ud af, hvordan min explode løkke skal være, og hvordan jeg får gemt alt i databasen i de rette felter. Det eneste jeg har nu, er: $data = file_get_contents('test.asp'); $x = (explode("<BR>",$data)); foreach ($x as $value) { echo $value . "<br />"; }
22. april 2010 - 23:49
#5
Har rodet lidt og dette virker næsten. $indhold = file_get_contents('fil.asp'); // Outputtet af $indhold er: //navn1#adresse1#medlemsnr#navn2#adresse2#medlemsnummer2# $x = (explode("#",$indhold)); foreach ($x as $value) { list($a, $b, $c) = $x; echo "Navn: ".$a . "<br />"; echo "adresse: ".$b . "<br />"; echo "medlemsnr: ".$c . "<br /> "; } Outputtet er Navn: jens adresse: gadevej medlemsnr: 1 Navn: jens adresse: gadevej medlemsnr: 1 Navn: jens adresse: gadevej medlemsnr: 1 Navn: jens adresse: gadevej medlemsnr: 1 ..og sådan fortsætter det. Der er noget med den foreach løkke jeg slet ikke har styr på.. :-(
23. april 2010 - 04:22
#6
Brug enten fgetcsv eller explode på \r?\n først ;) fgetcsv er lavet til dét der.
23. april 2010 - 08:15
#7
kan du ikke lave en anden separator mellem dine rows, så den ikke er den samme separator som mellem dine felter?
23. april 2010 - 16:26
#8
$fp = fopen( "fil.asp", "r" ); while ( $row = fgetcsv( $fp, 2048, "#" ) ) { echo "Navn: $row[0]<br>Adresse: $row[1]<br>Medlemsnr: $row[2]<br>"; } fclose( $fp );
04. november 2010 - 13:37
#9
kom du videre?
Vi tilbyder markedets bedste kurser inden for webudvikling