2
説明フィールド内に改行を含むCSVファイルを処理しようとしています。しかし、str_getcsvを使って行を配列に分割すると、エンクロージャー内の改行でも分割されます。 例:str_getcsvエンクロージャが改行で機能しない
$data ='header1,header2
value1,"value2a
values2b"';
$data = str_getcsv($data, PHP_EOL, '"');
var_export($data);
出力:
array (
0 => 'header1,header2',
1 => 'value1,"value2a',
2 => 'value2b"',
)
期待値:
array (
0 => 'header1,header2',
1 => 'value1,"value2a
value2b"',
)
PHPのバージョンである5.6.19(CLI)
あなたの出力の区切り文字は表示されません。str_getcsvに区切り文字PHP_EOLを指定すると、改行時に展開されます。PHP_EOLの代わりに "、"を渡すと、出力 – pritesh
引用符で囲まれていない改行を分割する別の方法はありますか?または、私はそれを行うためにいくつかの正規表現を使用する必要があると思いますか? – jjmirks