使用PHP将CSV输出到表格会产生额外的标题

时间:2018-08-31 20:31:48

标签: php html-table import-from-csv

我有这个简单的功能,可以从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;

2 个答案:

答案 0 :(得分:1)

此行有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 :(得分:0)

您的结帐<thead>缺少斜杠。应该是</thead>