PHP fgetcsv()显示前5行

PHP fgetcsv()显示前5行,php,fgetcsv,Php,Fgetcsv,我正在将CSV文件导入我的数据库。我想用列显示前5行,以便了解文件中的内容。 因此,下面我制作了一个快速脚本来打开文件。我计算列数,循环列数,为每个列创建,然后在下面抛出while()循环以显示行。当然,我循环遍历要匹配的列数 我成功地从文件中获取了数据,甚至获得了正确的列数。但是它是从文件中间的某个地方显示结果,而不是前5个记录。 第一行帮助我知道列的名称(如果有列名) 脚本很脏,我很好奇如何优化它 <? $filerow = $numcols =0; if(is_file($targe

我正在将CSV文件导入我的数据库。我想用列显示前5行,以便了解文件中的内容。 因此,下面我制作了一个快速脚本来打开文件。我计算列数,循环列数,为每个列创建,然后在下面抛出while()循环以显示行。当然,我循环遍历要匹配的列数

我成功地从文件中获取了数据,甚至获得了正确的列数。但是它是从文件中间的某个地方显示结果,而不是前5个记录。

第一行帮助我知道列的名称(如果有列名)

脚本很脏,我很好奇如何优化它

<?
$filerow = $numcols =0;
if(is_file($targetDirectoryFile)){ 
$file_opened = fopen($targetDirectoryFile, "r"); // open the file
?>
<table class="itemstable" style="width:100%;">
<?
    $getfileInfo = fgetcsv($file_opened);
    $numcols = count($getfileInfo); // count columns
?>
    <tr>
        <? for($cols = 0; $cols < $numcols; $cols++ ){ // loop thru # of columns ?>
        <th>Column <?=$cols+1;?></th>   
        <? } ?>
    </tr>
    <? 
    // feels like this could be done better.
    while ($getfileInfo2 = fgetcsv($file_opened)){
        $filerow++;
    ?>
        <tr>
            <? for($col = 0; $col < $numcols; $col++ ){ // loop thru # of columns  ?>
            <td><?=trim($getfileInfo2[$col]);?></td>
            <? } ?>
        </tr>

    <?
        if($filerow > 4){ break; fclose($file_opened); // stop and close after 5 loops }
    }
echo '</table>';
//fclose($file_opened);
}
?>

纵队

至于优化,只需使用以下命令,就可以摆脱循环中的
if
语句:

while ( ($getfileInfo2 = fgetcsv($file_opened)) && ($filerow < 5) )
{
while($getfileInfo2=fgetcsv($file_opened))&&($filerow<5))
{
我还认为,当您将语句放在
break
语句之后时,您的文件无法正确关闭,但我不认为这会导致出现问题


关于中间的输出;输入文件和生成的html是什么样子的?

我遇到的问题实际上是一个令人尴尬的问题。重复的记录名称,除了一个字符。我查看了错误的文件。所以,我只想记下三重检查。