3
使用fgetcsv是我發現讀取系統所需的csv文件的選項。但它似乎並不是每次都有效(實際上這種代碼工作時非常罕見)。fgetcsv將第一行中的所有數據帶入
if (($handle = fopen($file, 'r')) !== FALSE) {
set_time_limit(0); // necessary if a large csv file
$row = 0;
while (($data = fgetcsv($handle, 0, ',')) !== FALSE) {
print_r($data);
// .. here I do some stuff with the data
// .. The result should be an array with 5 columns and it run multiple times (for the amount of lines in the file)
// .. The result however is one array with a over 9000 columns (really over 9000, it's 9489 in the file that I'm testing)
}
fclose($handle);
die();
}
我試圖通過在代碼之前調用它來檢查行結束,但沒有取得太大的成功。
ini_set('auto_detect_line_endings', true);
該文件由另一個程序由客戶端導出,我不能讓它「更新」以適應軟件的需要。有什麼辦法來處理這個問題csv上的這個encoding
/line-ending
?
你看着原始文件,看看裏面有什麼了?也許它是在沒有行結束的情況下生成的,或者是完全不符合標準的結束字符。 –