Avatar billede systemx Nybegynder
07. februar 2006 - 11:36 Der er 6 kommentarer og
1 løsning

Hjælp til splitning af kommasepareret fil

Hej.. Er der nogle der kan hjælpe med noget kode til at splitte denne fil?
Og leder ikke kun efter explode men formentlig meget mere kode eftersom jeg for hver 9ende værdi vil ha dataene ned i et nyt array??

Her er filen www.systemx.dk/product-import.txt
Avatar billede systemx Nybegynder
07. februar 2006 - 11:37 #1
Eller måske et multidimensionelt array? Skal bare være sådan at jeg kan skille produkterne fra hinanden ihvertfald og der starter et nyt produkt for hver niende entry..

gode ideer anyone? er ved at få grå hår!
Avatar billede coderdk Praktikant
07. februar 2006 - 11:57 #2
Avatar billede barklund Nybegynder
07. februar 2006 - 12:05 #3
Følgende lille script burde klare det :)

$f = file_get_contents("http://www.systemx.dk/product-import.txt");
$matches = array();
preg_match_all("/\"(.*)\";\"(.*)\";\"(.*)\";\"(.*)\";\"(.*)\";\"(.*)\";\"(.*)\";\"(.*)\";\"(.*)\";\"(.*)\"\s+/sU", $f, $matches, PREG_SET_ORDER);
$i = 0;
print "Num lines: ".count($matches)."<br/>\n";
$products = array();
for($i = 0; $i < count($matches); $i++) {
    $products[$i] = array_map("trim", array_slice($matches[$i],1));
    print "Line ".$i." is<br> *".implode("<br> *",$products[$i])."<br>";
}

:)

--
Morten Barklund
Avatar billede systemx Nybegynder
07. februar 2006 - 13:03 #4
imponerende kode.. jeg bukker og takker mange gange! hvis du vil være så venlig at lave et svar :)
Avatar billede barklund Nybegynder
07. februar 2006 - 13:10 #5
Ikke særlig kønt, og fgetcsv kan muligvis tweakes til at spise disse typer data, men det er jo ikke en csv-fil - for data er ikke kommasepareret men derimod semikolon-separaret :)

--
Morten Barklund
Avatar billede coderdk Praktikant
07. februar 2006 - 13:20 #6
Det er en CSV ;) Det behøver ikke at være komma (selvom det hedder Comma Separated Values) :-) fgetcsv lader dig specificere en delimiter - Men barklunds kode er jo fin, specielt hvis det er så begrænset :)
Avatar billede barklund Nybegynder
07. februar 2006 - 13:28 #7
Jaokay, hvis man strækker definitionen af en CSV lidt, såååeh :)

Tark for points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester