如何在PHP中逐行显示具有特定结构的csv文件?

问题描述 投票:0回答:1

我有这段代码可以读取一个csv文件,并以这种形式显示它:

REFERENCE;COLOR;QUANTITY;TURNOVER;SELL TROUGH;COMMENT 
GJK0C9;8952;3;90;3%;Pack S   
GJKCS4;399;2;19;10%;Windows    
GSIJS5;9224;18;128;12%;New co   
BBBOF1;90;17;116;13%;In sales    
...

首先是标题,然后是所有行。

我想这样显示:

REFERENCE : GJK0C9    
COLOR: 8952    
QUANTITY: 3    
TURNOVER : 90    
SELL TROUGH: 3%   
HOW: Pack S  

REFERENCE : GJKCS4    
COLOR: 399    
....

依此类推。

如何以这种格式显示结果?

<?php
$row = 1;
if (($handle = fopen($nomcsv, 'r')) !== FALSE)
{
    echo '<table>';

    // Get headers
    if (($data = fgetcsv($handle, 1000, ',')) !== FALSE)
    {
        echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>';
    }

    // Get the rest
    while (($data = fgetcsv($handle, 1000, ',')) !== FALSE)
    {
        echo '<tr><td>'.implode('</td><td>', $data).'</td></tr>';
    }
    fclose($handle);
    echo '</table>';
}


?>
php fopen implode fgetcsv
1个回答
0
投票

更简单的方法:-

<?php
//read entire csv to array
$csv = array_map('str_getcsv', file('<file path>'));
//get column names
$column = array_shift($csv);

?>
<table>
    <tr>
        <?php foreach($column as $col){?><!--apply loop on column name-->
            <th><?php echo $col;?></th><!-- column names -->
        <?php } ?>
    </tr>
    <?php foreach($csv as $cs){?><!--apply loop on value-->
        <tr><?php echo "<td>".implode("</td><td>",$cs)."</td>";?></tr>
    <?php } ?>

</table>
© www.soinside.com 2019 - 2024. All rights reserved.