2011-08-23 53 views
2

有沒有辦法使用fgetcsv在特定的行上打開?fgetcsv在特定行打開?

我有一個非常大的csv,並希望通過ajax一次運行100行左右。我可以輕鬆地停止while循環,但是如何在特定行上打開?或者這是不可能的?

回答

8

有沒有簡單的方法開始於行100一讀,但你可以做的是讀/設置像這樣的文件中的位置:

$k = <previous position>; 
fseek($file, $k); 
while(...) { 
    fgetcsv(...); 
    ... 
} 
$k = ftell($file); //new position 

現在它只是一個保存頁面之間的這個位置的事情調用。

+0

更便宜的方法是使用fgets()作爲跳過的部分,並節省CSV解析的開銷,因爲這些數據剛被丟棄。 –

+0

比什麼便宜?我正在考慮用'fseek()'跳過它而不讀。 'fgets()'不起作用,因爲CSV文件可以包含多行值,'fgetcsv()'正確理解,但'fgets()'不會。 –

+0

嗯。真的夠了。我真的應該記得在回答問題之前先醒來...... –