2017-07-27 8 views
0

fgetcsvをテーブルに使用しましたが、最後に余分なセルを除いて正常に動作します。 http://jobbel.nl/csv.phpを参照してください。これをどうすれば解決できますか?テーブル内のfgetcsvが余分なセルを取得する

これは私のスクリプトです:

<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> 

答えて

0

これはそれでなければなりません。.. 。

    <?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

あなたは少し奇妙な細胞をエコーし​​ています。あなたが実際にそれらを必要とするとき、それはちょうど<td>年代をエコーする
変更:

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>"; 
} 

代替ソリューションはimplode()を使用して、あります、それは少しクリーナーです:

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    echo "<tr><td>" . implode('</td><td>', $data) . "</td></tr>"; 
} 
関連する問題