首页 > 解决方案 > PHP - while (!feof()) 不处理最后一行

问题描述

我的代码没有读到最后一行,你知道为什么吗?除 CSV 文件中的最后一行外,所有行都已处理

$cpt = 0;

$fp = fopen("$file", "r");

while (!feof($fp))
{
    $cpt++;
    if($cpt == 1) // First line
    {
        $line = fgets($fp,4096);
        $data = explode( ";",$line);
    }

    if($data[0] != "") // Last line
    {
        // Insert DB
        $line = fgets($fp3,4096); // Next line
        $data = explode( ";",$ligne3);
    }
}

谢谢!

标签: phpwhile-loop

解决方案


用于fgetcsv读取 CSV 文件。下面的示例一次读取一行 CSV 文件,以分解格式直接读取到$data-array 中。

$fp = fopen("$file", "r");

while(!feof($fp)) {
    
    //Reads the current line of CSV-file into $data
    $data = fgetcsv($fp, 0, ";");
    
}

在此处阅读更多信息fgetcsvhttps ://www.w3schools.com/php/func_filesystem_fgetcsv.asp


推荐阅读