Вывод CSV в таблицу с использованием PHP создает дополнительную голову

У меня есть эта простая функция для вывода таблицы из файла CSV. Проблема в том, что он создает дополнительную теаду.

function MSC_Show_Tables($attr) {

$rows = 1;

if (($handle = fopen($attr['csvfile'], "r")) !== FALSE) {
$priceTable = '<table class="msc-prices-tables">';
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$numRows = count($row);
if($rows == 1) {
$priceTable .= '<thead class="msc-table-head"><tr><th>'.$row[0].'</th><th>'.$row[1].'</th><th>'.$row[2].'</th></tr><thead><tbody>';
} else {
$priceTable .= '<tr><td>'.$row[0].'</td><td>'.$row[1].'</td><td>'.$row[2].'</td></tr>';
}
$rows++;
}
return $priceTable.'</tbody></table>';
fclose($handle);
}
}

Это HTML, который он производит

&lt;table class="msc-prices-tables"&gt;

&lt;thead class="msc-table-head"&gt;...&lt;/thead&gt;

&lt;thead&gt;&lt;/thead&gt;

&lt;tbody&gt;...&lt;/tbody&gt;

&lt;/table&gt;

0

Решение

Эта строка имеет 2 <thead>и нет </thead> так что ваш браузер, вероятно, исправляет эту ошибку и добавляет дополнительную

$priceTable .= '<thead class="msc-table-head"><tr><th>'.$row[0]
.'</th><th>'.$row[1].'</th><th>'.$row[2]
.'</th></tr><thead><tbody>';
//----------------------^^^^^^^

Так что поменяйте на

$priceTable .= '<thead class="msc-table-head"><tr><th>'.$row[0]
.'</th><th>'.$row[1].'</th><th>'.$row[2]
.'</th></tr></thead><tbody>';
// ---------------------^^^^^^^
1

Другие решения

Ваше закрытие <thead> отсутствует ведущая косая черта. Так должно быть </thead>

0

По вопросам рекламы [email protected]