我正在使用PHP從使用fgetcsv()的CSV文件導入數據,這會爲每行生成一個數組。起初,我有字符限制定在1024,像這樣:確保fgetcsv()讀取整行
while ($data = fgetcsv($fp, 1024)) {
// do stuff with the row
}
然而,CSV與200+列超過許多行1024極限。這導致行讀取在一行中間停止,然後下一次調用fgetcsv()將從前一個停止的地方開始,等到達到EOL時爲止。
我已經把這個限制提高到了4096,這應該關注大多數情況,但是我想要檢查一下,以確保在每行被提取後讀取整行。我如何去做這件事?
我正在考慮檢查數組的最後一個元素的結尾是否存在行尾字符(\ n,\ r,\ r \ n),但是不會通過fgetcsv()調用解析出這些元素?
另外,我意識到我可以通過編程來確定文件中最長的行,但這對真正大的CSV文件可能會造成很大的開銷。想弄清楚如何確保每一行都可以在飛行中完整閱讀。 –