Я хочу показать этот файл 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);
}
?>
Вот как я это сделал с 2 рядами.
Образ:
Результат прямо сейчас:
Вы можете использовать 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>";
Вы читаете файл 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>";