約 200,000 ~ 300,000 レコードを保持する CSV ファイルがあります。ほとんどのレコードは、単純な方法で分離して MySQL データベースに挿入できます。
$line = explode("\n", $fileData);
で区切られた値
$lineValues = explode(',', $line);
次に、int、float、string、text などの適切なデータ型を使用してデータベースに挿入します。
ただし、一部のレコードには、文字列に \n を含むテキスト列があります。$line = expand("\n", $fileData); を使用すると壊れます。方法。データベースに挿入する必要があるデータの各行には、約 216 列があります。すべての行に文字列に \n が含まれるレコードがあるわけではありません。ただし、行に \n が見つかるたびに、一重引用符 (') で囲まれます。
各行は次の形式で設定されます。
id,data,data,data,text,more data
例:
1,0,0,0,'Hello World,0
2,0,0,0,'Hello
World',0
3,0,0,0,'Hi',0
4,0,0,0,,0
例からわかるように、ほとんどのレコードは上記の方法で簡単に分割できます。問題を引き起こす例の 2 番目のレコードです。
改行は \n のみで、ファイルには \r がまったく含まれていません。