PHP CSV показывает в таблице

0

Я хочу показать этот CSV файл так же, как и изображение, но затем в PHP. Прямо сейчас я знаю, как показать это, если все они под "А", но я теперь зациклен на том, как показать это с более чем одной ячейкой.

<?php
echo "<table border='1'>";
if (($handle = fopen("top10.csv", "r")) !== FALSE) {
    $data = fgetcsv($handle, 0, ",");
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
        echo "<tr>";
        $num = count($data);
        for ($i=0; $i < $num; $i++) {
            echo"<td>" . $data[$i] . "<br /> </td>";
        }
        echo "</tr>";
    }
    fclose($handle);
}
?> 

Так я сделал это с двумя рядами.

Образ:

Изображение 174551

Результат прямо сейчас:

Теги:
html-table
import-from-csv

2 ответа

0

Возможно, вы захотите использовать SplFileObject который может анализировать файлы CSV. Например:

$file = new SplFileObject("/path/to/your/csv/file.csv");
$file->setFlags(SplFileObject::READ_CSV);
$rows = "";
foreach ($file as $row) {
    list ($a, $b, $c, $d, $e, $f, $g, $h, $i, $j, $k, $l) = $row;

    $rows .= <<<HTML
<tr>
    <td>${a}</td>
    <td>${b}</td>
    <td>${c}</td>
    <td>${d}</td>
    <td>${e}</td>
    <td>${f}</td>
    <td>${g}</td>
    <td>${h}</td>
    <td>${i}</td>
    <td>${j}</td>
    <td>${k}</td>
    <td>${l}</td>
</tr>
HTML;
}

echo "<table>".$rows."</table>";

Документация PHP

0

вы читаете файл 2 раза в своем коде:

$data = fgetcsv($handle, 0, ",");// 1st  (just remove this line)
while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { // 2nd

и другое решение попробует это:

echo "<table border=\"1\">";
$row=@explode("\n",@file_get_contents('test.csv'));
if(count($row)>0) foreach($row as $r){
    $col=@explode(",",$r);
    echo "<tr>";
    foreach($col as $c){
        echo "<td>$c</td>";
    }
    echo "</tr>";
}   
echo "</table>";
  • 0
    Это решение обычно работает в небольших установках, где CSV-файл состоит из нескольких строк. Вы столкнетесь с некоторым значительным снижением производительности при увеличении размера файла CSV.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню