【问题标题】:How to remove last row of CSV file in PHP如何在 PHP 中删除 CSV 文件的最后一行
【发布时间】:2026-01-09 21:15:01
【问题描述】:

我有一些代码可以在 PHP 中显示 CSV 文件数据。在这些代码中是这样的

row1
row2
row3
row4

空白(这不是任何数据)

<?php
$csvFile = 'abc.csv';
$file_handle = fopen($csvFile, 'r');
while (!feof($file_handle) )
{
    $csv_data[] = fgetcsv($file_handle, 1024);
}
fclose($file_handle);
foreach($csv_data as $data)
{   
    echo "column 2 = ".$data[1];  echo "<br>";
}

?>

预期输出:

row1
row2
row3
row4

我只有这四行,但它打印 5 和最后一个空白行。请建议我最好的解决方案。谢谢。

【问题讨论】:

  • if(!empty(xxx)) echo "xyz";

标签: php file csv


【解决方案1】:

你可以试试这个:-

<?php
$csvFile = 'abc.csv';
$file_handle = fopen($csvFile, 'r');
while (!feof($file_handle) )
{
    $csv_data[] = fgetcsv($file_handle, 1024);
}
fclose($file_handle);
$csv_data  =  array_pop($csv_data); // delete last element of Array
foreach($csv_data as $data)
{   
    echo "column 2 = ".$data[1];  echo "<br>";
}

?>

【讨论】:

    【解决方案2】:

    您在末尾附加&lt;br/&gt;,因此它会在最后打印空行并尝试此代码

    $count = 0;
    foreach($csv_data as $data)
    {   
        if($count>0) 
        { 
               echo "<br>";
        }   
        echo "column 2 = ".$data[1];
        $count+=1;
    }
    

    【讨论】:

      【解决方案3】:

      我通过添加此代码得到了这个解决方案

       if (empty($data)) { 
            break; 
       } 
      

      这是我脚本的全部代码

      <?php
      $csvFile = 'abc.csv';
      $file_handle = fopen($csvFile, 'r');
      while (!feof($file_handle) )
      {
          $csv_data[] = fgetcsv($file_handle, 1024);
      }
      fclose($file_handle);
      foreach($csv_data as $data)
      {   
       if (empty($data)) { 
                break; 
      }     
      echo "column 2 = ".$data[1];  echo "<br>";
      }
          ?>
      

      【讨论】: