2017-05-09 77 views
0

我有這個readCSV函數,現在跳過第一行,但我需要它跳過三個第一行。在PHP中跳過3個CSV的第一行

實現該目標的首選方式是什麼?

function readCSV($csvFile){ 
    $file_handle = fopen($csvFile, 'r'); 
    while (!feof($file_handle)) { 
    $array = fgetcsv($file_handle, 'r', ';'); 
    $line_of_text[] = array('dato'=>$array[0],'vs'=>trim($array[1]),'vf'=>trim($array[2])); 
    } 
    fclose($file_handle); 
    return $line_of_text; 
} 

$csvFile = 'http://some.file.csv'; 
+0

你可以稱之爲'與fgets($ file_handle)的循環之前'三倍。 –

+1

保留一個計數器來計算循環內部處理的行數,只在計數器大於3時才動作。 – coderodour

+0

Right @coderodour –

回答

0

使用計數器來跟蹤國內外衆多行處理:

function readCSV($csvFile){ 
    $file_handle = fopen($csvFile, 'r'); 
    $counter = 0; 
    while (!feof($file_handle)) { 
    if($counter < 3){ 
     $array = fgetcsv($file_handle, 'r', ';'); 
     $line_of_text[] = array('dato'=>$array[0],'vs'=>trim($array[1]),'vf'=>trim($array[2])); 
    } 
    $counter++ 
    } 
    fclose($file_handle); 
    return $line_of_text; 
} 
0

保留一個計數器計數循環中的加工線,只充當一次計數器大於3

例子:

function readCSV($csvFile){ 

    $counter = 0; 

    $file_handle = fopen($csvFile, 'r'); 

    while (!feof($file_handle)) { 
    if($counter > 3){ 
     $array = fgetcsv($file_handle, 'r', ';'); 
     $line_of_text[] = array('dato'=>$array[0],'vs'=>trim($array[1]),'vf'=>trim($array[2])); 
    } 
    $counter++; 
    } 

    fclose($file_handle); 
    return $line_of_text; 
} 

$csvFile = 'http://some.file.csv';