私はfgetcsv関数でphpを使用してcsvファイルを解析していました。それは行のすべてのコンテンツを解析し、後で私が見つけた、csvには「\ r」としての戻り値が含まれています。私が見た-それは前にPHPのバグとして報告されました。私はこれをPHPランタイム構成を設定することで解決しました-
ini_set("auto_detect_line_endings", "1");
それ以上の解決策はありますか、これは正しい方法ですか?
ありがとう
auto_detect_line_endings
の設定は、 php documentation で明示的に推奨されています。
ただし、2010年に\r
で行を区切る理由を推測することはできません。可能であれば、UNIXスタイル\n
に変換してください。
_\r
_の行末は、CSVファイルとして保存するときにMicrosoft Excelによって作成されるため、Excelスプレッドシートで開始する場合、それを回避することはあまりありません。
_auto_detect_line_endings
_を使用すると問題なく動作します。または、preg_replace("/\r\n|\n\r|\n|\r/", "\n", $subject);
で行末を正規化できます