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

Likes:
![even hulp nodig voor while met fgets [PHP]](https://www.webhostingtalk.nl/images/WHT_rd/misc/dT.png)
Quote