2017-07-27 2 views
0

Ich habe fgetcsv in einer Tabelle verwendet und es funktioniert gut, außer der zusätzlichen Zelle am Ende. siehe http://jobbel.nl/csv.php. Wie kann ich das beheben?fgetcsv in einer Tabelle erhält extra Zelle

Das ist mein Skript:

<table> 
    <tr> 
     <th>Datum</th> 
     <th>Tijd</th> 
     <th>Temperatuur</th> 
    </tr> 
<?php 
$row = 1; 
if (($handle = fopen("test.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $num = count($data); 
     echo "<tr><td>"; 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      echo $data[$c] . "</td><td>"; 
     } 
     echo "</td></tr>"; 
    } 
    fclose($handle); 
} 
?> 
</table> 

Antwort

0

Dieses es sein sollte ..

    <?php 

        $file = file('templog.csv'); 
        foreach($file as $line){ 
         list($datum,$tijd,$temparatuur)=explode(",", $line); 
         echo "<td>$Date"; 
         echo "<td>$Time"; 
         echo "<td>$Temparature<tr>"; 
        } 
        ?> 
0

Sie die Zellen ein wenig seltsam Echo.
ändern es nur um die <td> ‚s Echo, wenn Sie tatsächlich benötigen:

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $num = count($data); 
    echo "<tr>"; 
    $row++; 
    for ($c=0; $c < $num; $c++) { 
     echo "<td>" . $data[$c] . "</td>"; 
    } 
    echo "</tr>"; 
} 

ist eine alternative Lösung, mit implode(), das ist ein bisschen sauberer:

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    echo "<tr><td>" . implode('</td><td>', $data) . "</td></tr>"; 
} 
Verwandte Themen