如何在PHP中删除最后一行CSV文件

时间:2014-08-21 11:40:29

标签: php file csv

我有一些代码用PHP显示CSV文件数据。这些代码就是这样的

row1
row2
row3
row4

BLANK(这不是任何数据)

<?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行,最后一行是空行。请建议我最好的解决方案。感谢。

3 个答案:

答案 0 :(得分:0)

你可以试试这个: -

<?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>";
}

?>

答案 1 :(得分:0)

你在最后追加<br/>所以它会在最后打印空白行并尝试此代码

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

答案 2 :(得分:0)

我通过添加此代码获得此解决方案

 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>";
}
    ?>