Search code examples
phphtmlcsvfgetcsv

PHP dynamically create CSV: Skip the first line of a CSV file


I am trying to import a CSV file. Due to the program we use, the first row is basically all headers that I would like to skip since I've already put my own headers in via HTML. How can I get the code to skip the first row of the CSV? (the strpos command is to cut off the first field in all the rows.)

<?php
$row = 1;
if (($handle = fopen("ptt.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
           $row++;
    for ($c=0; $c < $num; $c++) {
    if(strpos($data[$c], 'Finished') !== false) {
    $c++;
echo "<TR> <TD nowrap>" . $data[$c] . "</ TD>"; }
    Else{
        echo "<TD nowrap>" .  $data[$c] . "</ TD>";
        }
    }
}
fclose($handle);
}
?>

Solution

  • As you are keeping track of the row number anyway, you can use continue to skip the rest of the loop for the first row.

    For example, add this at the start of your while loop (just above $num = count($data)):

    if($row == 1){ $row++; continue; }
    

    There are other ways to do this, but just make sure that when you continue, $row is still being incremented or you'll get an infinite loop!