Likes Likes:  0
Resultaten 1 tot 2 van de 2
Geen
  1. #1
    Matthijs de Z
    even hulp nodig voor while met fgets [PHP]
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    even hulp nodig voor while met fgets [PHP]

    Hallo,

    Ik moet een .csv file bewerken. De eerste regen moet (als het script klaar
    is) een andere opmaak hebben dan de overige regels. Dus ik dacht, ik lees
    eerst de eerste regel in en daarna met een while loop de rest. Helaas krijg
    ik alleen de eerste regel goed te zien en de rest niet. Dit is het (basis)
    script:

    <?php
    $fd = fopen ("/pad/naar/de/file.csv", "r");
    $tekst = fgets($fd, 4096);
    $plaatseerstecomma = strpos($tekst,",")+1;
    $achtereerstecomma = substr($tekst,$plaatseerstecomma);
    $vervangcommas = eregi_replace(",","</td>\n<td>",$achtereerstecomma);
    $totaalregel = "<tr>\n<td>$vervangcommas</td>\n</tr>";
    echo "<table border=1>\n$totaalregel\n</tabel>";

    echo "<table border=1>\n";
    while (!feof($fd)):

    $buffer = fgets($fd, 4096);
    $buffer = trim($buffer);
    $regel = "";

    $regel = $buffer;

    $plaatseerstecomma = strpos($regel,",")+1;
    $achtereerstecomma = substr($regel,$plaatseerstecomma);
    $vervangcommas = eregi_replace(",","</td>\n<td>",$achtereerstecomma);
    $totaalregel = "<tr>\n<td>$vervangcommas</td>\n</tr>";


    endwhile;
    fclose ($fd);
    echo "\n</tabel>";
    ?>

    ===============
    Dat geeft dit als bron:
    ===============
    <table border=1>
    <tr>
    <td>Name</td>
    <td>Close</td>
    <td>MACD</td>
    <td>MACD -1</td>
    <td>MACD -2</td>
    <td>MACD -3</td>
    <td>TriggerLine</td>
    <td>TriggerLine -1</td>
    <td>TriggerLine -2</td>
    <td>Triiger Line -3</td>
    <td>St_FK</td>
    <td>%K -1</td>
    <td>%K -2</td>
    <td>%K -3</td>
    <td>St_FD</td>
    <td>%D -1</td>
    <td>%D -2</td>
    <td>%D -3</td>
    <td>HC</td>
    <td>HC-1</td>
    <td>LC</td>
    <td>LC-1
    </td>
    </tr>
    </tabel><table border=1>

    </tabel>

    ==================
    Als bron file gebruik ik dit (als voorbeeld slechts een paar regels)
    ==================

    Symbol,Name,Close,MACD,MACD -1,MACD -2,MACD -3,TriggerLine,TriggerLine -1,Tr
    iggerLine -2,Triiger
    Line -3,St_FK,%K -1,%K -2,%K -3,St_FD,%D -1,%D -2,%D -3,HC,HC-1,LC,LC-1
    1comp,NASDAQ
    COMPOSITE,1356.74,-10.27,-10.58,-13.56,-15.74,12.37,12.96,13.02,12.96,0.19,1
    4.86,55.81,62.14,27.02,47.77,65.13,77.60,1393.37,1 392.52,1356.60,1376.60
    1dj-30,DJ 30
    INDUSTRIAL,8197.94,-107.35,-118.34,-138.70,-149.31,70.04,68.96,65.86,62.62,0
    ..86,50.74,59.34,85.61,41.94,64.22,72.40,84.56,838 8.33,8342.83,8195.14,8260.4
    8
    33sx5p,DJ STOXX50
    ,2304.21,-84.62,-96.26,-105.36,-107.34,16.28,12.16,7.88,3.87,59.36,71.07,89.
    52,90.31,75.64,83.76,88.80,86.24,2344.82,2341.03,2 263.97,2298.56

    ==========
    om het even duidelijk te maken, zal ik er in deze postin even een regel
    tussen zetten
    ==========

    Symbol,Name,Close,MACD,MACD -1,MACD -2,MACD -3,TriggerLine,TriggerLine -1,Tr
    iggerLine -2,Triiger
    Line -3,St_FK,%K -1,%K -2,%K -3,St_FD,%D -1,%D -2,%D -3,HC,HC-1,LC,LC-1

    1comp,NASDAQ
    COMPOSITE,1356.74,-10.27,-10.58,-13.56,-15.74,12.37,12.96,13.02,12.96,0.19,1
    4.86,55.81,62.14,27.02,47.77,65.13,77.60,1393.37,1 392.52,1356.60,1376.60

    1dj-30,DJ 30
    INDUSTRIAL,8197.94,-107.35,-118.34,-138.70,-149.31,70.04,68.96,65.86,62.62,0
    ..86,50.74,59.34,85.61,41.94,64.22,72.40,84.56,838 8.33,8342.83,8195.14,8260.4
    8

    33sx5p,DJ STOXX50
    ,2304.21,-84.62,-96.26,-105.36,-107.34,16.28,12.16,7.88,3.87,59.36,71.07,89.
    52,90.31,75.64,83.76,88.80,86.24,2344.82,2341.03,2 263.97,2298.56

    =====================
    waarom pakt het script die fgets niet bij de while functie. Ik heb de file
    nog niet gesloten en reeds 1 regel uitgelezen. Dan zou hij toch bij regel 2
    moeten starten om verder te gaan?
    Groeten,

    Matthijs



  2. #2
    Matthijs de Z
    even hulp nodig voor while met fgets [PHP]
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: even hulp nodig voor while met fgets [PHP]

    Laat maar, ik heb het script opnieuw geschreven en nu werkt het wel. Ik zie
    alleen even niet wat ik eerst fout deed, maar goed...het werkt.

    <?php
    $fd = fopen ("/pad/naar/de/file.csv", "r");


    $tekst = fgets($fd, 4096);
    $plaatseerstecomma = strpos($tekst,",")+1;
    $achtereerstecomma = substr($tekst,$plaatseerstecomma);
    $vervangcommas = eregi_replace(",","</td>\n<td>",$achtereerstecomma);
    $totaalregel = "<tr>\n<td>$vervangcommas</td>\n</tr>";


    echo "<table border=1>\n$totaalregel\n";

    while(!feof($fd)):

    $buffer = fgets($fd, 4096);
    $buffer = trim($buffer);
    $regel = "";

    $regel = $buffer;

    $plaatseerstecomma = strpos($regel,",")+1;
    $achtereerstecomma = substr($regel,$plaatseerstecomma);
    $vervangcommas = eregi_replace(",","</td>\n<td>",$achtereerstecomma);
    $totaalregel = "<tr>\n<td>$vervangcommas</td>\n</tr>";

    echo $totaalregel;

    endwhile;
    fclose ($fd);
    echo "\n</tabel>";
    ?>






    > Hallo,
    >
    > Ik moet een .csv file bewerken. De eerste regen moet (als het script klaar
    > is) een andere opmaak hebben dan de overige regels. Dus ik dacht, ik lees
    > eerst de eerste regel in en daarna met een while loop de rest. Helaas

    krijg
    > ik alleen de eerste regel goed te zien en de rest niet. Dit is het (basis)
    > script:
    >
    > <?php
    > $fd = fopen ("/pad/naar/de/file.csv", "r");
    > $tekst = fgets($fd, 4096);
    > $plaatseerstecomma = strpos($tekst,",")+1;
    > $achtereerstecomma = substr($tekst,$plaatseerstecomma);
    > $vervangcommas = eregi_replace(",","</td>\n<td>",$achtereerstecomma);
    > $totaalregel = "<tr>\n<td>$vervangcommas</td>\n</tr>";
    > echo "<table border=1>\n$totaalregel\n</tabel>";
    >
    > echo "<table border=1>\n";
    > while (!feof($fd)):
    >
    > $buffer = fgets($fd, 4096);
    > $buffer = trim($buffer);
    > $regel = "";
    >
    > $regel = $buffer;
    >
    > $plaatseerstecomma = strpos($regel,",")+1;
    > $achtereerstecomma = substr($regel,$plaatseerstecomma);
    > $vervangcommas = eregi_replace(",","</td>\n<td>",$achtereerstecomma);
    > $totaalregel = "<tr>\n<td>$vervangcommas</td>\n</tr>";
    >
    >
    > endwhile;
    > fclose ($fd);
    > echo "\n</tabel>";
    > ?>
    >
    > ===============
    > Dat geeft dit als bron:
    > ===============
    > <table border=1>
    > <tr>
    > <td>Name</td>
    > <td>Close</td>
    > <td>MACD</td>
    > <td>MACD -1</td>
    > <td>MACD -2</td>
    > <td>MACD -3</td>
    > <td>TriggerLine</td>
    > <td>TriggerLine -1</td>
    > <td>TriggerLine -2</td>
    > <td>Triiger Line -3</td>
    > <td>St_FK</td>
    > <td>%K -1</td>
    > <td>%K -2</td>
    > <td>%K -3</td>
    > <td>St_FD</td>
    > <td>%D -1</td>
    > <td>%D -2</td>
    > <td>%D -3</td>
    > <td>HC</td>
    > <td>HC-1</td>
    > <td>LC</td>
    > <td>LC-1
    > </td>
    > </tr>
    > </tabel><table border=1>
    >
    > </tabel>
    >
    > ==================
    > Als bron file gebruik ik dit (als voorbeeld slechts een paar regels)
    > ==================
    >
    >

    Symbol,Name,Close,MACD,MACD -1,MACD -2,MACD -3,TriggerLine,TriggerLine -1,Tr
    > iggerLine -2,Triiger
    > Line -3,St_FK,%K -1,%K -2,%K -3,St_FD,%D -1,%D -2,%D -3,HC,HC-1,LC,LC-1
    > 1comp,NASDAQ
    >

    COMPOSITE,1356.74,-10.27,-10.58,-13.56,-15.74,12.37,12.96,13.02,12.96,0.19,1
    > 4.86,55.81,62.14,27.02,47.77,65.13,77.60,1393.37,1 392.52,1356.60,1376.60
    > 1dj-30,DJ 30
    >

    INDUSTRIAL,8197.94,-107.35,-118.34,-138.70,-149.31,70.04,68.96,65.86,62.62,0
    >

    ..86,50.74,59.34,85.61,41.94,64.22,72.40,84.56,838 8.33,8342.83,8195.14,8260.4
    > 8
    > 33sx5p,DJ STOXX50
    >

    ,2304.21,-84.62,-96.26,-105.36,-107.34,16.28,12.16,7.88,3.87,59.36,71.07,89.
    > 52,90.31,75.64,83.76,88.80,86.24,2344.82,2341.03,2 263.97,2298.56
    >
    > ==========
    > om het even duidelijk te maken, zal ik er in deze postin even een regel
    > tussen zetten
    > ==========
    >
    >

    Symbol,Name,Close,MACD,MACD -1,MACD -2,MACD -3,TriggerLine,TriggerLine -1,Tr
    > iggerLine -2,Triiger
    > Line -3,St_FK,%K -1,%K -2,%K -3,St_FD,%D -1,%D -2,%D -3,HC,HC-1,LC,LC-1
    >
    > 1comp,NASDAQ
    >

    COMPOSITE,1356.74,-10.27,-10.58,-13.56,-15.74,12.37,12.96,13.02,12.96,0.19,1
    > 4.86,55.81,62.14,27.02,47.77,65.13,77.60,1393.37,1 392.52,1356.60,1376.60
    >
    > 1dj-30,DJ 30
    >

    INDUSTRIAL,8197.94,-107.35,-118.34,-138.70,-149.31,70.04,68.96,65.86,62.62,0
    >

    ..86,50.74,59.34,85.61,41.94,64.22,72.40,84.56,838 8.33,8342.83,8195.14,8260.4
    > 8
    >
    > 33sx5p,DJ STOXX50
    >

    ,2304.21,-84.62,-96.26,-105.36,-107.34,16.28,12.16,7.88,3.87,59.36,71.07,89.
    > 52,90.31,75.64,83.76,88.80,86.24,2344.82,2341.03,2 263.97,2298.56
    >
    > =====================
    > waarom pakt het script die fgets niet bij de while functie. Ik heb de file
    > nog niet gesloten en reeds 1 regel uitgelezen. Dan zou hij toch bij regel

    2
    > moeten starten om verder te gaan?
    > Groeten,
    >
    > Matthijs
    >
    >




Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics