Avatar billede petan Nybegynder
08. december 2008 - 16:33 Der er 8 kommentarer og
2 løsninger

Data fra fil til array

Hej,

Jeg har en tekstfil som indeholder 3 kolonner (semikolonsepareret) og et ukendt antal rækker. Disse skal indlæses i en database, men først skal de vises på en side så de kan godkendes af brugeren.

Det nemmeste er vel at indlæse dem til et array...(?).

Jeg har indtil videre skrevet (fundet) følgende kode:

<?php
$line = array();
$i = 1;

// Store the file name in a string.
$filename = "file.txt";

// Open the file.
$filehandle = fopen($filename, "r");

// Read the file line by line into a string.
while (!feof($filehandle))
{
    $line[$i] = fgets($filehandle);
    $i = $i + 1;
}
// Close file.
fclose($filehandle);

?>

Jeg vil gerne have dem i et array hvor jeg kan referere til posterne - dataArray[række][kolonne]. Kan jeg evt. bruge preg_split?

På forhånd tak!
Avatar billede jensgram Nybegynder
08. december 2008 - 17:20 #1
http://dk2.php.net/manual/en/function.fgetcsv.php skulle kunne klare det meste mht. parsing.

Du kan evt. lave dit dataArray selv:

<?php
$dataArray = array();
$handle = fopen('test.csv', 'r');
while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) {
    $dataArray[] = $data;
    // Du kan også blot udskrive her, hvis det er muligt.
}
fclose($handle);
?>
Avatar billede petan Nybegynder
08. december 2008 - 18:22 #2
Tak for dit svar.

Hvordan finder jeg f.eks. værdien i række 3 og kolonne 2 hvis jeg bruger ovenstående metode?

Antag af min fil f.eks. ser ud som nedenfor:

24.12.08;Diverse indkøb;-100,00
25.12.08;Husleje;-500,50
26.12.08;Varme;-100
Avatar billede jakobdo Ekspert
08. december 2008 - 20:34 #3
Det må være:

echo $dataArray[2][1];
Avatar billede jensgram Nybegynder
08. december 2008 - 20:36 #4
print_r() giver:

Array
(
    [0] => Array
        (
            [0] => 24.12.08
            [1] => Diverse indkøb
            [2] => -100,00
        )

    [1] => Array
        (
            [0] => 25.12.08
            [1] => Husleje
            [2] => -500,50
        )

    [2] => Array
        (
            [0] => 26.12.08
            [1] => Varme
            [2] => -100
        )

)
Avatar billede jensgram Nybegynder
08. december 2008 - 20:36 #5
Så som jakobdo skriver :)
Avatar billede petan Nybegynder
18. december 2008 - 20:10 #6
Tak til jer begge. I må gerne lave et svar hvis I vil have point.
Avatar billede jakobdo Ekspert
18. december 2008 - 20:57 #7
Svar!
Avatar billede jensgram Nybegynder
20. december 2008 - 10:19 #8
!
Avatar billede jakobdo Ekspert
23. april 2009 - 10:41 #9
Takker for point.
Avatar billede jensgram Nybegynder
23. april 2009 - 12:38 #10
Takker :)
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