質問
私はCSVを解析しようとしているPHPを介してユーザーによってアップロードされたファイルが、それが正常に動作していない。
私はいくつかの適切な形式のCSVをアップロードしたのだが、しかし、うまく働きました。私は多くのユーザーがCSVをExcelからエクスポートされたファイルをインポートしようとしていると、彼らは問題を抱えている持っています。私は私にファイルを比較すると、Excelがエントリの周りのすべての不足の引用符をファイルことに気付きました。それはさておき、彼らは同じです。私はそれを開いて、それが動作するすべての変更を行わずに、オープンオフィスでそれを保存した場合。私はかなり確信しているので、それを引用符に関連しています。
私の質問は、どのように私はこれらの不正な形式CSVを読みますか。
UPDATE:!原因が発見されました。
このは、ExcelのMac版に固有のものです。改行はそうfgetcsvを使用する前に、あなたがこれを行う必要があり、いくつかの任意の理由でMac上で異なる方法で処理され;
ini_set('auto_detect_line_endings',TRUE);
解決
このは、ExcelのMac版に固有のものです。改行はそうfgetcsvを使用する前に、あなたがこれを行う必要があり、いくつかの任意の理由でMac上で異なる方法で処理され;
ini_set('auto_detect_line_endings',TRUE);
他のヒント
fgetcsv
でのマニュアルページを見てみると、このようなプロトタイプのルックスます:
array fgetcsv ( resource $handle [, int $length
[, string $delimiter = ',' [, string $enclosure = '"'
[, string $escape = '\\' ]]]] )
$enclosure
のデフォルト値はの(すなわち。第四パラメータ)は二重引用符でます。
あなたはあなたが任意のエンクロージャを望んでいないことをその4番目のパラメータに空の文字列を指定して、指定しようとした場合?
(もちろん、これは今働いているものを壊すかもしれない - あなたは二つの別々のケースに対処する必要があると思いますどの手段:で読み取ることができませんでした、二重引用符で囲まれたフィールドを持つファイル、およびファイル最初のケース)の