将 csv 文件行的每一项放入变量中

Putting each item of a csv file line into a variable

我使用以下代码打开上传的 csv 文件,然后将每一行输出到单独的一行。

  if(isset($_GET['uploadfile'])) {
 $file = fopen($_FILES['csvfile']['tmp_name'], 'r+');
 while(! feof($file))
{
 echo fgets($file). "<br />";
 }
 fclose($file);
  }

输出如下所示:

        ABC,-,-,-,-,-,- 
        ACR,-,-,-,-,-,- 
        AGL,-,1.60,-,3.25,-,6.35 
        AGO,-,-,-,-,-,- 
        AHS,-,-,4.00,-,-,- 
        ALC,-,1.60,-,3.00,-,6.35 
        ALV,-,-,4.00,-,-,- 
        AMG,-,-,-,-,-,- 
        ANF,-,-,-,-,7.95,- 
        ANG,-,-,-,-,-,- 
        ANN,-,1.60,-,3.25,-,- 
        ANV,0.87,1.60,-,-,-,- 
        APO,-,-,-,-,-,- 
        ARP,-,-,-,-,-,- 
        ARR,-,1.60,-,3.00,-,6.35 
        ASH,-,-,-,-,-,- 
        ATG,-,-,-,-,-,- 
        ATR,-,1.60,-,3.00,-,- 
        AUE,-,1.60,-,3.25,-,- 
        AUN,-,1.60,-,3.25,-,- 
        AUR,-,-,-,-,-,- 
        BAB,0.87,1.60,-,-,-,- 
        BAL,-,1.60,-,-,-,6.35 
        BBE,-,-,-,-,-,- 
        BBL,-,-,-,-,-,- 
        BCH,-,1.60,-,3.25,-,- 
        BDI,-,-,-,-,-,- 
        BEM,-,-,-,-,7.95,- 
        BEN,-,-,-,-,-,- 
        BGE,-,-,-,3.25,-,- 
        BIA,-,-,-,-,-,- 
        BIF,-,1.60,-,3.25,-,- 
        BLC,0.87,1.60,-,3.25,-,- 

所以有一个产品代码,然后是 5 个 csv 单元格,每个单元格之间用逗号隔开。我想做的是在运行时为每个变量分配一个变量,所以

   BLC,0.87,1.60,-,3.25,-,- 

可能会变成

     $productcode.$value1.$value2.$value3.$value4.$value5

对于 while 循环的每个循环。不过,我不确定到底如何将每条线分开,所以我很感激任何人对如何做到这一点的任何指示。

  if(isset($_GET['uploadfile'])) {
     $file = fopen($_FILES['csvfile']['tmp_name'], 'r+');
     while(! feof($file))
     {
       $line = fgets($file);
       list($productcode,$value1,$value2,$value3,$value4,$value5, $value6) = explode("," , $line);

        // Store into for further proccessing, if needed, else insert into DB
       //array_push($productcode_array, $productcode);
       //array_push($value1_array, $value1);
       // and so on for each value..
     }
     fclose($file);
  }
if(isset($_GET['uploadfile'])) {
    $file = fopen($_FILES['csvfile']['tmp_name'], 'r+');
    while(! feof($file))
    {
        $line = fgetcsv($file);

        list($productcode, $value1, $value2, $value3, $value4, $value5) = $line;

        // Ready to use the variables and insert to database
    }
    fclose($file);
}

给你,现在你可以随意使用变量,并在列表函数完成后插入数据库,所以在我的评论中。