2011-09-12 10 views
0

私はCSVに変換したExcelファイルを持っているので、PHPで解析することができます。ただし、何らかの理由でExcelのセルにはキャリッジリターン(\ r)と改行なし(\ n)しかありません。私はcsvでラインフィードが必要です。そうしないと、PHPは1行ですべてを解析します。CSVファイルで改行を使用するにはどうすればよいですか?

excel/csvファイルに改行を追加する方法はありますか?

ありがとうございます!

EDIT:ファイルを間違ったCSVとしてエクスポートしていたように見えますが、Windowsのコンマ区切りは使用しませんでした。回答者のおかげで。

+0

どのように '\ r'をファイル/コンテンツの' \ n'に置き換えて解析するのでしょうか? – Shef

+0

そうであってはなりません。私はちょうどCSVファイルをエクスポートするためにExcelを使用し、行は改行で区切られています。 – Ofir

+0

どのようにExcelファイルをCSVに変換していますか? – amaidment

答えて

2

行います:PHPで簡単なものはそれを処理する前に\n\rを置き換えることであろう

ini_set('auto_detect_line_endings', true); 

次に右読んだ後falseに設定ファイル。 manualから

もあり、最初の行のための EOL規則を検出したときに、非常に小さなパフォーマンスの低下があり、そして、これは、オフにMacintoshシステムと相互運用するためにPHPが、デフォルト を可能にしますUnixシステムで のキャリッジリターンをアイテムセパレータとして使用している人は、 が後方互換性のない動作を経験するためです。

2

これにはいくつかの方法があります。あなたのCSVファイルを読み込む前に、

// Load the whole data file as a string 
$data = file_get_contents("yourcsv.csv"); 
$data = str_replace("\r","\n", $data); 

// use str_getcsv() in PHP 5.3+ to parse it to an array 
$csv_array = str_getcsv($data); 
関連する問題