次のように .CSV をアプリケーションにインポートしています。
if (($handle = fopen($file, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
ある程度は機能しますが、完璧にはほど遠いです。最初に行の先頭を取得して配列に入れ、次に各行をループしてデータ セットを取得したいと考えていました。
最初の行 (ヘッド) には 2 番目の行のいくつかの部分も含まれているため、区切りの問題が発生しているようです。
.csv ファイルを Excel から直接エクスポートしました。エンコーディングのトリックなどがあるのではないかと思います。